Scroll to navigation

UUID_GENERATE(3) Програмерско упутство UUID_GENERATE(3)

НАЗИВ

uuid_generate, uuid_generate_random, uuid_generate_time, uuid_generate_time_safe - ствара нову јединствену УУИД вредност

УВОД

#include <uuid.h>

void uuid_generate(uuid_t out);
void uuid_generate_random(uuid_t out);
void uuid_generate_time(uuid_t out);
int uuid_generate_time_safe(uuid_t out);
void uuid_generate_md5(uuid_t out, const uuid_t ns, const char *name, size_t len);
void uuid_generate_sha1(uuid_t out, const uuid_t ns, const char *name, size_t len);

ОПИС

Функција uuid_generate() ствара нови универзални јединствени одредник (UUID). ууид ће бити створен на основу висококвалитетне насумичности из getrandom(2), /dev/urandom, или /dev/random ако су доступни. Ако нису доступни, тада ће uuid_generate() користити заменски алгоритам који користи тренутно време, локалну етернет MAC адресу (ако је доступна), и насумичне податке створене коришћењем псеудо-насумичног генератора.

Функција uuid_generate_random() приморава коришћење потпуно-насумичног УУИД формата, чак и ако генератор високо-квалитетног насумичног броја није доступан, у ком случају ће псеудо-насумични генератор бити замењен. Знајте да употреба псеудо-насумичног генератора може угрозити јединственост УУИД-а створених на овај начин.

Функција uuid_generate_time() намеће коришћење заменског алгоритма који користи тренутно време и локалну етернет MAC адресу (ако је доступна). Овај алгоритам је некада био основни алгоритам који се користио за стварање УУИД-а, али због коришћења етернет MAC адресе, могу да му процуре информације о томе када и где је УУИД створен. Ово може да доведе до проблема са приватношћу у неким програмима, тако да функција uuid_generate() користи овај алгоритам само ако висококвалитетни извор насумичности не буде доступан. Да би се осигурала јединственост УУИД-а створених истовремено покренутим процесима, библиотека „uuid“ користи општи бројач стања сата (ако процес има дозволе да добије ексклузивни приступ овој датотеци) и/или uuidd(8) демона, ако је већ покренут или може бити покренут од стране процеса (ако је инсталиран и процес има довољно дозвола да га покрене). Ако се ниједан од ова два механизма синхронизације не може користити, теоретски је могуће да два процеса који се истовремено извршавају добију исти/е УУИД(е). Да бисте утврдили да ли је УУИД створен на безбедан начин, користите uuid_generate_time_safe.

Функција uuid_generate_time_safe() је слична са uuid_generate_time(), осим што резултира вредношћу која означава да ли је неки од механизама усклађивања (видите изнад) коришћен.

УУИД је дуг 16 бајтова (128 бита), што даје приближно 3,4x10^38 јединствених вредности (постоји приближно 10^80 елементарних честица у универзуму према Космосу Карла Сагана). Нови УУИД се разумно може сматрати јединственим међу свим УУИД-има створеним на локалном систему, као и међу УУИД-има створеним на другим системима у прошлости и будућности.

Функције uuid_generate_md5() и uuid_generate_sha1() стварају MD5 и SHA1 хеширан (предвидив) УУИД заснован на добро познатом УУИД-у који обезбеђује називни простор и необавезну бинарну ниску. УУИД-и су сагласни са V3 и V5 УУИД-има према RFC-4122 <https://tools.ietf.org/html/rfc4122>.

РЕЗУЛТНА ВРЕДНОСТ

Ново створени УУИД резултира у меморији на месту на које показује излаз. uuid_generate_time_safe() даје нулу ако је УУИД створен на безбедан начин, у супротном -1.

У СКАЛДУ СА

Ова библиотека ствара УУИД-е саобразне са OSF DCE 1.1, и хеш засноване УУИД-е V3 и V5 саобразне са RFC-4122 <https://tools.ietf.org/html/rfc4122>.

АУТОРИ

Theodore Y. Ts’o

ПОГЛЕДАЈТЕ ТАКОЂЕ

uuidgen(1), uuid(3), uuid_clear(3), uuid_compare(3), uuid_copy(3), uuid_is_null(3), uuid_parse(3), uuid_time(3), uuid_unparse(3), uuidd(8)

ПРИЈАВЉИВАЊЕ ГРЕШАКА

За пријављивање грешака, користите пратиоца грешака на <https://github.com/util-linux/util-linux/issues>.

ДОСТУПНОСТ

Библиотека libuuid је део пакета „util-linux“ још од издања 2.15.1. Може се преузети са Архиве Линукс кернела <https://www.kernel.org/pub/linux/utils/util-linux/>.

2024-08-05 util-linux 2.40.2