Generatore di ULID e NanoID
ULID & NanoID Generator
Genera ULID ordinabili o NanoID corti con l’alfabeto e la lunghezza che scegli, e mostra la probabilità di collisione.
Genera ULID e NanoID, i due formati di id corto a cui si ricorre quando un UUID da 36 caratteri è troppo lungo per un URL. Mostra anche l’aritmetica delle collisioni per la lunghezza e l’alfabeto scelti, che è la parte che decide se l’id sia abbastanza corto o troppo corto.
26 caratteri, ordinabili, con un timestamp in millisecondi nei primi dieci.
0 id
Quanto è probabile una collisione
Entropia
80,0 bit
Id prima di una probabilità dell’1%
1,56e11
A 1.000 all’ora
18 mila anni
Il limite del compleanno: P ≈ 1 − exp(−n²/2N). Il numero qui sotto è il punto in cui arriva all’uno per cento.
Esamina un ULID
Gli ULID seguono la specifica ULID: 48 bit di timestamp in millisecondi e poi 80 bit casuali, in base32 di Crockford — che lascia fuori I, L, O e U perché nessuno ne legga uno male ad alta voce.
Come si usa
Scegliere fra ULID e NanoID
Un ULID è fisso a 26 caratteri con un timestamp in millisecondi nei primi dieci, quindi si ordina. Un NanoID è di qualunque lunghezza su qualunque alfabeto ed è pura entropia: non ha niente di ordinato.
Impostare la lunghezza e l’alfabeto
Per NanoID il valore predefinito è 21 caratteri su 64 simboli. Un id più corto o un alfabeto più piccolo — per esempio un insieme senza caratteri che si somigliano, per qualcosa che le persone leggono ad alta voce — costa entropia, e il pannello sotto mostra esattamente quanta.
Leggere la riga sulle collisioni
Dà il numero di id prima di arrivare all’uno per cento di probabilità di una collisione qualsiasi, e quanto tempo è a mille al giorno. Sotto i 64 bit di entropia la pagina lo dice, perché è quella la linea fra uno slug di URL e qualcosa che non deve essere indovinabile.
Decodificare un ULID se se ne ha uno
Basta incollarlo e il pannello stampa il momento di creazione e la coda casuale — utile per capire quando un record è stato creato davvero.
Domande frequenti
Un id corto è sicuro come link segreto?
Solo se lo dice la sua entropia. Un NanoID da 21 caratteri ha circa 126 bit e va bene; uno da 10 caratteri ne ha circa 60 ed è indovinabile da chiunque sia disposto a spendere dei soldi. La pagina segnala tutto quello che sta sotto i 64 bit proprio per questo: un id corto è un id corto, non un segreto.
Perché un alfabeto personalizzato esce comunque uniforme?
Perché i simboli vengono estratti con il campionamento a rifiuto e non con `random % length`. La scorciatoia del modulo introduce una distorsione in ogni alfabeto la cui lunghezza non divide 256 — il bug comune dei generatori di id fatti in casa, e invisibile finché qualcuno non conta.
Che cosa fa Monotonic per un ULID?
All’interno di un singolo millisecondo, i ULID normali sono in ordine casuale l’uno rispetto all’altro. La modalità monotona incrementa il campo casuale invece di riestrarlo, così una raffica generata nello stesso millisecondo si ordina comunque nell’ordine in cui è stata creata.
Perché un ULID usa base32 senza I, L, O e U?
È l’alfabeto di Crockford: toglie i caratteri che si confondono quando una persona legge un id ad alta voce o lo copia da uno schermo. Il prezzo sono 32 simboli invece di 36, ed è il motivo per cui un ULID ha bisogno di 26 caratteri dove a un NanoID ne bastano 21.
Può ricevere da
Dopo
Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.
Generatore di password
Password Generator
Genera password casuali con regole di lunghezza, insieme di caratteri ed esclusione dei caratteri ambigui, anche a blocchi.
Generatore di chiavi casuali
Random Key Generator
Genera byte casuali crittografici in esadecimale, Base64 o Base64URL della lunghezza che scegli, per i segreti di un’applicazione.
Generatore di UUID
UUID Generator
Genera UUID v1, v4, v5 e v7 in quantità, e ricava l’istante contenuto in un valore v1 o v7.
Codificatore e decodificatore Base64
Base64 Encoder & Decoder
Codifica e decodifica in Base64 e Base64URL testo o file, trattando correttamente l’UTF-8.
Da curl a codice
curl to Code
Converte un comando curl in fetch, axios, requests di Python, Go, PHP o PowerShell.
Hash di un testo
Text Hash
Calcola MD5, SHA-1, SHA-256, SHA-384, SHA-512 e CRC-32 di una stringa, con uscita in maiuscolo o in Base64.