Un UUID

Forma

Maiuscolo e graffe insieme sono la forma dei GUID di Windows. Le opzioni cambiano solo come è scritto: è sempre lo stesso identificatore.

Un blocco

Da 1 a 100. Cento righe stanno in un riquadro che si scorre; mille non si copiano da una pagina.

Il blocco compare qui.

Versione 4, variante RFC 4122: dei 128 bit, sei sono fissi e dicono proprio questo. Gli altri 122 sono casuali.

I bit vengono da crypto.getRandomValues, il generatore crittografico del browser. Non da Math.random, che non è imprevedibile: un identificatore che si può indovinare non è un identificatore.

Con 122 bit, per arrivare a una probabilità su un miliardo di generare due volte lo stesso valore bisognerebbe produrne centotremila miliardi.

Tutto avviene nel tuo browser: nessun dato viene inviato da nessuna parte.

Come funziona

  1. Ne trovi già uno pronto. Il bottone ne pesca un altro.
  2. Scegli la forma se ti serve maiuscola, senza trattini o fra graffe.
  3. Per popolare una tabella genera un blocco e copialo tutto insieme.

Perché serve

Perché ne serve uno adesso, per una riga di test, per una chiave di esempio, per un campo che non può restare vuoto. E perché la strada breve — aprire una console e chiamare crypto.randomUUID() — richiede comunque di aprire una console, e non è quello che si sta facendo in quel momento.

Sui sei bit che non sono casuali

Un UUID v4 è lungo 128 bit, ma i bit casuali sono 122. Gli altri sei sono fissi e dicono cosa quella stringa è: quattro dicono «versione 4», due dicono «variante RFC 4122». Nella forma scritta sono il 4 all’inizio del terzo gruppo e la prima cifra del quarto, che vale sempre 8, 9, a oppure b.

Sono la parte che un generatore scritto in fretta sbaglia, e li sbaglia in silenzio: sedici byte casuali messi in fila danno una stringa con l’aspetto giusto, che passa un’occhiata e viene rifiutata mesi dopo dal validatore di qualcun altro.

Sulla sorgente

I bit vengono da crypto.getRandomValues, che è il generatore crittografico del browser. Non da Math.random, che non è imprevedibile: la sua sequenza si può ricostruire osservandone abbastanza, e un identificatore che si può indovinare non è un identificatore.

Dove il browser offre crypto.randomUUID viene usato quello — è la stessa cosa, scritta dalla piattaforma. Non c’è sempre: quella funzione richiede una connessione sicura, quindi guardando il sito dal telefono in rete locale su http:// sparisce. È il caso in cui questa pagina continua a funzionare invece di smettere senza dirlo.

Sulle collisioni

Con 122 bit casuali, per arrivare a una probabilità su un miliardo di generare due volte lo stesso valore bisognerebbe produrne centotremila miliardi. Non è «improbabile»: è un numero che non si raggiunge.

Sui tuoi dati

Tutto avviene nel tuo browser. Questo sito è fatto di file statici e non ha un server a cui mandare qualcosa, anche volendo — cosa che per un generatore di identificatori vale la pena dire due volte.

Da qui si passa anche di qua

Convertitore di timestamp

Da epoch a data e ritorno, in secondi o millisecondi, con la ISO 8601 e l'ora di un fuso qualsiasi.

Sviluppo

Decodificatore JWT

Header e payload di un token, con le date leggibili e i claim spiegati. La firma non si verifica, e lo strumento lo dice.

Sviluppo

Tutti gli strumenti