F.70. uuid-ossp — генератор UUID#
F.70. uuid-ossp — генератор UUID #
Модуль uuid-ossp предоставляет функции для генерации уникальных идентификаторов (UUID) с использованием одного из нескольких стандартных алгоритмов. Также имеются функции для создания определенных специальных констант UUID.
Этот модуль необходим только для особых требований, выходящих за рамки возможностей основного продукта Tantor SE-1C. См. Раздел 9.14 для встроенных способов генерации UUID.
Этот модуль считается "доверенным", то есть его можно установить
недоступным пользователям, у которых есть привилегия CREATE
в текущей базе данных.
F.70.1. uuid-ossp Функции #
Таблица F.35 показывает функции, доступные для генерации UUID. Соответствующие стандарты ITU-T Rec. X.667, ISO/IEC 9834-8:2005 и RFC 4122 определяют четыре алгоритма для генерации UUID, идентифицируемые номерами версий 1, 3, 4 и 5. (Алгоритма версии 2 не существует.) Каждый из этих алгоритмов может быть подходящим для различных наборов приложений.
Таблица F.35. Функции для генерации UUID
Функция Описание |
|---|
|
Генерирует UUID версии 1. Для этого используется MAC-адрес компьютера и временная метка. Обратите внимание, что UUID такого типа раскрывает идентификатор компьютера, создавшего идентификатор, и время, когда это произошло, что может сделать его непригодным для некоторых приложений, требующих повышенной безопасности. |
|
Генерирует UUID версии 1, но использует случайный мультикаст MAC-адрес вместо реального MAC-адреса компьютера. |
Генерирует UUID версии 3 в заданном пространстве имен с использованием указанного входного имени. Пространство имен должно быть одной из специальных констант, созданных функциями Например: SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.postgresql.org'); Параметр name будет хешироваться с использованием алгоритма MD5, поэтому исходный текст нельзя получить из сгенерированного UUID. Генерация UUID с использованием этого метода не имеет случайного или зависящего от окружения элемента и, следовательно, является воспроизводимой. |
Генерирует версию 4 UUID, которая полностью производится из случайных чисел. |
Генерирует UUID версии 5, который работает аналогично UUID версии 3, за исключением использования хеш-функции SHA-1. Версия 5 предпочтительнее версии 3, поскольку считается, что SHA-1 более безопасен, чем MD5. |
Таблица F.36. Функции, возвращающие константы UUID
Функция Описание |
|---|
Возвращает константу UUID “nil”, которая не является реальным UUID. |
Возвращает константу, обозначающую пространство имен DNS для UUID. |
Возвращает константу, обозначающую пространство имен URL для UUID. |
Возвращает константу, обозначающую пространство имен объектных идентификаторов (OID) ISO для UUID. (Это относится к ASN.1 OID, которые не связаны с OID, используемыми в Tantor SE-1C). |
Возвращает константу, обозначающую пространство имен X.500 для уникальных идентификаторов (UUID). |
F.70.2. Сборка uuid-ossp #
Исторически этот модуль зависел от библиотеки OSSP UUID, что и объясняет его название. Хотя библиотека OSSP UUID все еще доступна по адресу http://www.ossp.org/pkg/lib/uuid/, она плохо поддерживается и становится все труднее портировать ее на новые платформы. Теперь uuid-ossp может быть собран без библиотеки OSSP на некоторых платформах. В Linux и некоторых других платформах подходящие функции предоставляются в библиотеке libuuid, которая изначально появилась в проекте e2fsprogs (хотя в современных версиях Linux она считается частью util-linux-ng). При вызове configure укажите --with-uuid=e2fs, чтобы использовать libuuid из e2fsprogs, или --with-uuid=ossp, чтобы использовать библиотеку OSSP UUID. На одной машине может быть доступно несколько таких библиотек, поэтому configure не выбирает одну автоматически.
F.70.3. Автор #
Peter Eisentraut <peter_e@gmx.net>