UltKit

UUID-generator

Skep ewekansige weergawe 4-UUID's, van een tot honderd op 'n slag, en kopieer hulle as 'n lys. Hulle kom van jou blaaier se kriptografies veilige ewekansige generator, en 'n kontroleerder wys jou die weergawe en variant van enige UUID wat jy plak.

0 karakters · 0 woorde · 0 reëls

Werk heeltemal in hierdie blaaieroortjie. Jou teks word nooit opgelaai of gestoor nie.

UUID-weergawes

Die weergawe is die eerste syfer van die derde groep; die variant is in die eerste syfer van die vierde groep gekodeer (8, 9, a of b vir RFC-UUID's). Voorbeelde is die toetsvektore uit RFC 9562.

WeergaweGebou uitVoorbeeld
v1Gregoriaanse tydstempel + node- (MAC-) IDc232ab00-9414-11ec-b3c8-9f6bdeced846
v3MD5-hash van 'n naamruimte + naam5df41881-3aed-3515-88a7-2f4a814cf09e
v4122 ewekansige bisse919108f7-52d1-4320-9bac-f847db4148a8
v5SHA-1-hash van 'n naamruimte + naam2ed6657d-e927-568b-95e1-2665a8aea6a2
v6v1-tydstempel herrangskik sodat ID's volgens tyd sorteer1ec9414c-232a-6b00-b3c8-9f6bdeced846
v7Unix-millisekondes + ewekansige bisse, sorteerbaar017f22e2-79b0-7cc3-98c4-dc0c0c07398f
v8Eie uitleg deur die toepassing gedefinieer2489e9ad-2ee2-8e00-8ec9-32d5f69181c0

Wat 'n UUID is en hoe om dit te lees

'n UUID (universeel unieke identifiseerder, in Microsoft-sagteware 'n GUID genoem) is 'n 128-bis-getal wat as 32 heksadesimale syfers in groepe van 8-4-4-4-12 geskryf word, byvoorbeeld f47ac10b-58cc-4372-a567-0e02b2c3d479. Dit is in 2005 in RFC 4122 gestandaardiseer; in Mei 2024 is daardie dokument deur RFC 9562 vervang, wat die ou weergawes behou en drie nuwes byvoeg. Twee posisies is vas: die eerste syfer van die derde groep is die weergawe (die 4 in 4372), en die eerste syfer van die vierde groep dui die variant aan, wat 8, 9, a of b is vir elke UUID wat die RFC volg.

Weergawe 4 vul die ander 122 bisse met ewekansige data. Daardie ruimte is so groot dat jy ongeveer 2,7 triljoen (2,7 × 10¹⁸) daarvan sou moes genereer vir 'n 50%-kans op een duplikaat, en daarom skep stelsels v4-ID's onafhanklik op baie masjiene sonder om te koördineer. Hierdie bladsy gebruik crypto.randomUUID, of crypto.getRandomValues waar dit ontbreek, nooit Math.random nie, want die uitset daarvan is nie ontwerp om onvoorspelbaar te wees nie. Die opsies Hoofletters en Sonder koppeltekens verander net die formaat; die waarde bly dieselfde, en die meeste ontleders aanvaar albei skryfwyses.

v4, v7 en die ander weergawes

Weergawes 1 en 6 word uit 'n tydstempel en 'n node-ID gebou, oorspronklik die rekenaar se MAC-adres, wat verklap waar en wanneer die ID gemaak is. Weergawes 3 en 5 haal 'n naamruimte en 'n naam deur MD5 of SHA-1, sodat dieselfde invoer altyd dieselfde UUID gee. Weergawe 8 is 'n vrye uitleg vir eie skemas. Die nuweling wat die belangrikste is, is weergawe 7: dit begin met 'n 48-bis-Unix-tydstempel in millisekondes en vul die res met ewekansige bisse, sodat ID's volgens skeppingstyd sorteer.

Daardie volgorde is die rede om v7 vir databasis-primêre sleutels te oorweeg. Ewekansige v4-sleutels beland oor 'n hele B-boomindeks, wat bladsye laat splits en kasplaaslikheid benadeel soos 'n tabel groei, terwyl v7-sleutels in ongeveer stygende volgorde aankom soos 'n outo-inkrement-kolom, en steeds sonder 'n sentrale teller gegenereer kan word. Kies v4 as jy 'n ID wil hê wat niks verklap nie, ook nie wanneer dit geskep is nie; kies v7 as invoegprestasie en tydvolgorde saak maak. 'n UUID is 'n identifiseerder, nie 'n geheim nie: gebruik vir wagwoorde en API-geheime 'n spesiale wagwoordgenerator. Meer enkodeerders en inspekteurs is by die ontwikkelaarsgereedskap.

Gereelde vrae

Kan twee ewekansig gegenereerde UUID's ooit dieselfde wees?
In teorie ja, in die praktyk nee. Met 122 ewekansige bisse sou selfs 'n miljard v4-UUID's per sekonde vir ongeveer 86 jaar net omtrent 'n 50%-kans op een botsing gee, mits die ewekansige bron betroubaar is.
Wat is die verskil tussen 'n UUID en 'n GUID?
In wese niks. GUID is Microsoft se naam vir dieselfde 128-bis-identifiseerder. Sommige Microsoft-gereedskap wys GUID's in hoofletters of tussen krulhakies, wat die kontroleerder hier aanvaar.
Hoe kan ek sien watter weergawe 'n UUID is?
Kyk na die eerste syfer van die derde groep: 4 beteken ewekansig, 7 beteken tydgeordend, 1 beteken tydstempel plus node. Plak dit in Kontroleer 'n UUID om die weergawe en variant te sien.
Moet ek UUIDv7 eerder as v4 vir databasissleutels gebruik?
Dikwels ja. v7-sleutels is tydgeordend, wat B-boomindekse kompak en invoegings vinnig hou. Bly by v4 as die skeppingstyd wat in 'n v7-ID ingebed is privaat moet bly.
Is dit veilig om 'n UUID as 'n token vir wagwoordherstel te gebruik?
'n v4-UUID van 'n veilige generator het 122 ewekansige bisse, wat genoeg is om onraaibaar te wees, maar baie biblioteke bied spesiale tekenfunksies met uitdruklike vervaldatum. Gebruik nooit tydgebaseerde weergawes soos v1 of v7 as geheime nie.