UUID
Skapa slumpade identifierare av version 4, i det skrivsätt du behöver.
Identifierare
Slumpen hämtas från webbläsarens kryptografiska slumpkälla, och inget skickas vidare.
Så fungerar det
Ett UUID är en identifierare på 128 bitar, skriven som 32 hexadecimala tecken i fem grupper åtskilda av bindestreck.
Version 4 består av slumpade bitar, sånär som på sex bitar som anger version och variant. Det ger 122 bitar slump, alltså drygt fem sextiljoner möjliga värden, alltså 5,3 × 10³⁶.
Med så många möjligheter behöver ingen central instans dela ut identifierarna. Två system kan skapa var sin identifierare utan att fråga varandra, och risken att de krockar är försumbar.
Slumpen kommer från webbläsarens kryptografiska slumpkälla, som är avsedd just för sådant som ska vara omöjligt att gissa.
Skrivsättet med versaler eller klamrar förekommer i Windows-världen. Det är samma identifierare, bara skriven på ett annat sätt.
Så skapas identifierarna
Verktyget anropar webbläsarens crypto.randomUUID, som enligt W3C:s Web Cryptography API skapar ett UUID av version 4 ur kryptografiskt säkra slumpbyte. I äldre webbläsare som saknar funktionen fyller verktyget själv 16 byte med crypto.getRandomValues och skriver sedan över sex bitar: den övre halvan av byte nummer 7 blir 0100, som betyder version 4, och de två översta bitarna i byte nummer 9 blir 10, som anger varianten. Upp till 100 identifierare skapas per omgång. Valen för versaler, klamrar och bindestreck ändrar bara hur värdena skrivs, inte värdena själva.
Så känner du igen version 4
De låsta bitarna syns i texten. Det första tecknet i den tredje gruppen är alltid 4. Det första tecknet i den fjärde gruppen är 8, 9, a eller b, eftersom bara två av dess fyra bitar är låsta. I c3431ee8-4dd9-4038-b998-71210a2ffb2b, skapat med verktygets egen kod, är de tecknen 4 och b. Står något annat på de platserna är identifieraren inte av version 4. RFC 9562 tillåter att bokstäverna skrivs med versaler, gemener eller blandat.
Gränsfall
Ett UUID är en identifierare, inte en hemlighet. RFC 9562 säger att man inte bör anta att UUID är svåra att gissa, och att de inte får användas som behörighet, alltså identifierare där innehavet i sig ger åtkomst. En länk för att återställa ett lösenord behöver en token som är gjord för just det.
Som nyckel i en databas har version 4 en nackdel som standarden själv pekar ut: värden som skapas efter varandra hamnar långt ifrån varandra i indexet, så varje ny rad skrivs in på en slumpmässig plats. Version 7 börjar med en tidsstämpel och hamnar därför i den ordning värdena skapades. Verktyget skapar bara version 4.
Två värden har egna namn i standarden: noll-UUID, med bara nollor, och max-UUID, med bara f. Inget av dem kan komma ur verktyget, eftersom versions- och variantbitarna alltid är satta.