Le module uuid-ossp fournit des fonctions qui permettent de créer des identifiants uniques universels (UUIDs) à l'aide d'algorithmes standard. Ce module fournit aussi des fonctions pour produire certaines constantes UUID spéciales.
Ce module dépend de la bibliothèque OSSP UUID, disponible sur http://www.ossp.org/pkg/lib/uuid/.
Tableau F.30, « Fonctions pour la génération d'UUID » montre les fonctions disponibles pour générer des UUIDs. Les standards en question, ITU-T Rec. X.667, ISO/IEC 9834-8:2005 et RFC 4122, spécifient quatre algorithmes pour produire des UUID identifiés par les numéros de version 1, 3, 4 et 5. (Il n'existe pas d'algorithme version 2.) Chacun de ces algorithmes peut convenir pour un ensemble différent d'applications.
Tableau F.30. Fonctions pour la génération d'UUID
Fonction | Description |
---|---|
uuid_generate_v1() |
Cette fonction crée un UUID version 1. Ceci implique l'adresse MAC de l'ordinateur et un horodatage. Les UUID de ce type révèlent l'identité de l'ordinateur qui a créé l'identifiant et l'heure de création de cet identifiant, ce qui peut ne pas convenir pour certaines applications sensibles à la sécurité. |
uuid_generate_v1mc() |
Cette fonction crée un UUID version 1, mais utilise une adresse MAC multicast à la place de la vraie adresse de l'ordinateur. |
uuid_generate_v3(namespace uuid, name text) |
Cette fonction crée un UUID version 3 dans l'espace de nom donné en utilisant le nom indiqué en entrée. L'espace de nom doit être une des constantes spéciales produites par les fonctions uuid_ns_*() indiquées dans Tableau F.31, « Fonctions renvoyant des constantes UUID ». (En théorie, cela peut être tout UUID.) Le nom est un identifiant dans l'espace de nom sélectionné. Par exemple : SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.postgresql.org'); Le paramètre name sera haché avec MD5, donc la version claire ne peut pas être récupérée à partir de l'UUID généré. La génération des UUID par cette méthode ne comprend aucun élément au hasard ou dépendant de l'environnement et est du coup reproductible. |
uuid_generate_v4() |
Cette fonction crée un UUID version 4 qui est entièrement réalisé à partir de nombres aléatoires. |
uuid_generate_v5(namespace uuid, name text) |
Cette fonction crée un UUID version 5 qui fonctionne comme un UUID version 3 sauf que SHA-1 est utilisé comme méthode de hachage. La version 5 devrait être préférée à la version 3 car SHA-1 est considéré plus sécurisé que MD5. |
Tableau F.31. Fonctions renvoyant des constantes UUID
uuid_nil() |
Une constante UUID « nil », qui ne correspond pas à un UUID réel. |
uuid_ns_dns() |
Constante désignant l'espace de nom pour les UUID. |
uuid_ns_url() |
Constante désignant l'espace de nom URL pour les UUID. |
uuid_ns_oid() |
Constante désignant l'espace de nom des identifiants d'objets ISO pour les UUIDs. (Ceci aboutit aux OID ASN.1, mais n'a pas de relation avec les OID de PostgreSQL™.) |
uuid_ns_x500() |
Constante désignant l'espace de nom « X.500 distinguished name » (DN) pour les UUID. |
Peter Eisentraut <peter_e@gmx.net>