UUID v4
Nejaušs UUID, balstīts uz nejaušiem baitiem (RFC 4122).
UUID v7
Pēc laika sakārtots UUID ar milisekundes precizitāti (RFC 9562).
Kas ir UUID?
UUID (universāli unikāls identifikators) ir 128 bitu identifikators, kas rakstīts kā 32 heksadecimāli cipari piecās ar defisēm atdalītās grupās, piemēram, 3f2504e0-4f89-41d3-9a0c-0305e82c3301. UUID ir veidoti tā, lai būtu unikāli bez centrālā reģistra — dažādas mašīnas, servisi un datubāzes var ģenerēt ID neatkarīgi un praksē tomēr nekad nesadurties.
Versijas 4 UUID tiek veidoti no nejaušiem bitiem, tāpēc 122 no 128 bitiem ir faktiski nejauši. Versija 7, kas standartizēta RFC 9562, sākuma bitos iekļauj Unix milisekundes laika zīmi, tāpēc identifikatori kārtojas pēc izveides laika, paliekot globāli unikāli — lieliski piemēroti datubāzes primārajai atslēgai. Piemēram, 3f2504e0-4f89-41d3-9a0c-0305e82c3301 13. heksadecimālais cipars (4) apzīmē 4. versiju, bet 17. cipars (9) nosaka RFC 4122 variantu.
Kā lietot UUID ģeneratoru
- Izvēlies versiju: UUID v4 tīrai nejaušībai vai UUID v7 pēc laika kārtojamiem ID.
- Nospied „Ģenerēt“, lai izveidotu jaunu identifikatoru — vari ģenerēt cik nepieciešams.
- Nospied „Kopēt“, lai UUID uzreiz ievietotu starpliktuvē.
- „Notīrīt“ atiestata rezultātu, un versiju lapas pārslēdz starp v4 un v7.
Biežāk uzdotie jautājumi par UUID
Vai lietot UUID v4 vai v7?
Izmanto v7, ja ID būs datubāzes atslēgas: tā kā prefikss ir laika zīme, ievietošana notiek indeksa beigās un tiek novērsta lappušu fragmentācija, ko izraisa nejaušas v4 vērtības. v4 der, ja vajag vienkārši nejaušu, necaurredzamu identifikatoru un secība nav svarīga.
Vai UUID patiešām ir unikāli?
v4 sadursmes varbūtība ir niecīga: lai sasniegtu 50% iespēju, būtu jāģenerē aptuveni 2,7 x 10^18 UUID. v7 unikalitāti vienas milisekundes ietvaros garantē nejaušs skaitītājs.
Vai UUID var izmantot kā noslēpumu?
Nē. UUID v4 ir neparedzams, taču nav kriptogrāfiski stiprs noslēpums. API atslēgām, sesijām un paroles atjaunošanas saitēm izmanto īstu nejaušu tokenu ģeneratoru (vismaz 128 biti no CSPRNG).
Vai šie UUID tiek ģenerēti jūsu serverī?
Nē. Ģenerators izmanto pārlūka drošo nejaušības avotu crypto.getRandomValues(), tāpēc identifikatori tiek veidoti tavā ierīcē un netiek ne pārsūtīti, ne reģistrēti.
Kāda atšķirība starp GUID un UUID?
Tas ir viens un tas pats. GUID (Globally Unique Identifier) ir Microsoft nosaukums UUID formātam; abi izmanto vienu un to pašu 128 bitu struktūru, kas definēta RFC 4122 un RFC 9562.
