Dnes som sa dozvedel o rôznych verziách Universally Unique IDentifiers (UUID) a rozhodol som sa zostaviť krátky cheatsheet pre príkaz uuid dodávaný projektom Open Source Software Project (OSSP). Treba poznamenať, že existuje aj príkaz uuidgen, ktorý podporuje util-linux, ale parametre príkazu z OSSP sa mi pamätajú ľahšie.

  • Vygenerovanie UUID verzie 1, ktoré je založené na čase a hardvérovej adrese systému, ak je dostupná. Pravdepodobne by si nemal používať túto možnosť pre bezpečnostné účely kvôli jej možnej predvídateľnosti:

uuid

  • Vygenerovanie UUID verzie 4, ktoré je založené na náhodných dátach. Toto je najbežnejšia možnosť bez akýchkoľvek bezpečnostných obmedzení alebo požiadaviek. Jeho hlavnou vlastnosťou je náhodnosť:

uuid -v4

  • Vygenerovanie UUID verzie 5, ktoré je založené na zadanom názve objektu so špecifikovaným prefixom namespace a používa hashovaciu funkciu SHA1. Jeho hlavnou vlastnosťou je reprodukovateľnosť:

uuid -v5 ns:DNS|URL|OID|X500 object_name

Táto možnosť mi trvala najdlhšie, kým som ju pochopil. Téma je dosť rozsiahla a zaslúžila by si samostatný príspevok. Predbežne, UUID verzia 5 sa používa predovšetkým ako Uniform Resource Name (URN). URN sú navrhnuté ako trvalé identifikátory, čo znamená, že sú dostupné dlho po tom, ako zdroj, ktorý identifikujú, už nie je dostupný.

Ďalšie použitia #

  • Vygenerovanie viacerých UUID verzie 4 naraz:

uuid -v4 -n count

  • Vygenerovanie UUID verzie 4 so špecifikovaným výstupným formátom, užitočné keď je potrebná binárna alebo Single Integer Value (SIV) reprezentácia, namiesto bežne používanej reťazcovej reprezentácie:

uuid -v4 -F BIN|STR|SIV

  • Vygenerovanie UUIDv4 a zápis výstupu do súboru:

uuid -v4 -o path/to/file

  • Dekódovanie zadaného UUID:

uuid -d uuid

Hoci nie je možné priamo vystopovať pôvod informácie len pohľadom na UUID, dekódovanie môže byť užitočné pri ladení aplikácie, pričom nie veľa nástrojov príkazového riadku túto funkciu ponúka, takže stojí za to to mať na pamäti.

Čo verzie 2 a 3? #

Verzia 2 UUID je vyhradená len pre interné použitie a bežne nie je dostupná.

Verzia 3 je stále podporovaná a dostupná, ale tu ju nepokrývame. Má rovnaké vlastnosti ako verzia 5, ale používa MD5 hash, ktorý sa už považuje za kryptograficky prekonaný. Verzia 3 sa preto neodporúča použiť v nových návrhoch.

Odkazy #

Toto je 56. príspevok výzvy #100daystooffload.