Generatore di UUID, ULID e Nano ID
Genera in blocco UUID v4, UUID v7 ordinati per tempo, ULID e Nano ID, e leggi la versione e il timestamp contenuti in un ID.
Fissa qui gli strumenti. Restano salvati in questo browser.
Fissa uno strumento e il suo adesivo arriva qui.
Genera in blocco UUID v4, UUID v7 ordinati per tempo, ULID e Nano ID, e leggi la versione e il timestamp contenuti in un ID.
Un UUID versione 4 è fatto di 122 bit casuali. Non dice nulla su quando o dove è stato creato, ed è la scelta abituale quando un ID deve soltanto essere univoco. Un UUID versione 7, standardizzato nel 2024 in RFC 9562, mette un timestamp Unix a 48 bit in millisecondi davanti a 74 bit casuali. I nuovi ID vengono ordinati dopo quelli più vecchi, quindi le righe inserite insieme restano vicine nell'indice del database, al prezzo di mostrare la data di creazione a chiunque veda l'ID.
Un ULID segue la stessa idea con una scrittura diversa: 48 bit di tempo e 80 bit casuali in 26 caratteri Crockford Base32 senza trattini, che non distinguono tra maiuscole e minuscole. Un Nano ID è una stringa casuale di cui scegli lunghezza e alfabeto. Il valore predefinito di 21 caratteri da 64 simboli sicuri negli URL contiene 126 bit, poco più di un UUID versione 4, in una stringa più corta.
In teoria gli ID casuali possono collidere. Con la versione 4 dovresti generare circa 2,7 miliardi di miliardi (2,7 × 10^18) di UUID prima che la probabilità di un solo duplicato arrivi al 50%, ed è per questo che le applicazioni li considerano univoci. Un Nano ID più corto o un alfabeto ridotto abbassano questo margine: la riga sotto le opzioni mostra quanti bit casuali dà la tua scelta.
Un ID è un identificatore, non un segreto. Le versioni 1, 6 e 7 e gli ULID rivelano quando sono stati creati, e RFC 9562 sconsiglia di affidarsi a un UUID come prova di autorizzazione. Per un link di reset della password, una sessione o una API key, usa un token casuale di almeno 128 bit e conserva sul server solo il suo hash.
Nella forma abituale xxxxxxxx-xxxx-Vxxx-Nxxx-xxxxxxxxxxxx, la cifra V è la versione e i primi bit di N sono la variante: 8, 9, a o b per il layout RFC 9562 usato da quasi tutti gli UUID. Le versioni 1 e 6 contengono un conteggio a 60 bit di intervalli di 100 nanosecondi dal 15 ottobre 1582, insieme a un ID del nodo che in origine era l'indirizzo MAC della scheda di rete. La versione 7 contiene millisecondi Unix. Le versioni 3 e 5 sono hash di un nome e la versione 4 è casuale, quindi non contengono nulla da decodificare.
I primi dieci caratteri di un ULID sono il suo timestamp. L'analizzatore accetta anche UUID senza trattini, tra parentesi graffe o con il prefisso urn:uuid:.
Ogni bit casuale proviene da crypto.getRandomValues, il generatore di numeri casuali crittografico del browser. Non viene richiesto nulla a un server e non viene salvato nulla.
Gli UUID versione 7 creati nello stesso millisecondo mantengono il timestamp e aggiungono un incremento casuale ai 74 bit casuali, cioè il metodo monotono descritto in RFC 9562, quindi un lotto si ordina sempre nell'ordine in cui è stato generato. Gli ULID creati nello stesso millisecondo aggiungono uno alla parte casuale, come descrive la specifica ULID. Quest'ordine vale per gli ID generati in questa pagina: gli ID creati su macchine diverse nello stesso millisecondo non hanno un ordine preciso. I caratteri dei Nano ID vengono scelti scartando i byte casuali che cadono fuori dall'alfabeto, così ogni simbolo ha la stessa probabilità.
La versione 7 è più adatta come chiave primaria quando vuoi che le nuove righe finiscano vicine nell'indice e non ti importa che l'ID mostri la sua data di creazione. La versione 4 è la scelta giusta quando l'ID non deve rivelare nulla. Entrambi sono a 128 bit e stanno nella stessa colonna uuid.
È possibile, ma troppo improbabile per tenerne conto. Un UUID versione 4 ha 122 bit casuali, quindi ne servono circa 2,7 miliardi di miliardi (2,7 × 10^18) prima che la probabilità di un solo duplicato arrivi al 50%. Il rischio reale è una sorgente di casualità debole, ed è per questo che questo strumento usa il generatore crittografico del browser.
No, ma i due si somigliano. Entrambi sono a 128 bit e iniziano con un timestamp a 48 bit in millisecondi, quindi i bit di un ULID stanno in una colonna UUID a 128 bit. Un ULID non ha i campi versione e variante, quindi RFC 9562 non lo definisce come UUID, e la sua forma testuale usa Crockford Base32 dove un UUID usa l'esadecimale.
Sì, per gli UUID versione 1, 6 e 7 e per gli ULID, che contengono un timestamp. Incolla il valore nell'analizzatore per vederlo come data. Un UUID versione 4 è casuale e non contiene alcuna informazione sul tempo.
Si apre in una finestra tutta sua e continua a funzionare offline.
Per installarla, tocca il pulsante Condividi e poi «Aggiungi alla schermata Home».