IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

F.40. uuid-ossp

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/.

F.40.1. Fonctions de uuid-ossp

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.


F.40.2. Auteur

Peter Eisentraut