Skip to content

Generatore ULID gratuito — Genera e decodifica ULID

Genera, decodifica e converti ULID online — gratis e 100% nel browser. Estrai il timestamp incorporato in un ULID, converti ULID in UUID e viceversa, genera in batch, con modalità monotonica. Nulla viene inviato a un server.

Niente tracciamento Funziona nel browser Gratuito
Ogni ULID è generato localmente con il generatore di numeri casuali crittografico del tuo browser (crypto.getRandomValues). Nulla viene caricato, registrato o memorizzato.

Ogni ULID usa nuova casualità a 80 bit.

Cos'è un ULID?

Un ULID — Universally Unique Lexicographically Sortable Identifier — è un identificatore a 128 bit creato per correggere una debolezza pratica dell'UUIDv4 casuale mantenendone la proprietà migliore: puoi generarne uno ovunque, senza un coordinatore centrale, e avere la certezza che sia univoco. La differenza è che un ULID è ordinabile per tempo. È reso come 26 caratteri di Base32 di Crockford, divisi in due parti: i primi 10 caratteri sono un timestamp a 48 bit che conta i millisecondi dall'epoca Unix, e gli ultimi 16 caratteri sono 80 bit di casualità crittograficamente sicura. Metti il tempo per primo, codificalo in un alfabeto che preserva l'ordine, e l'identificatore si ordina cronologicamente come una semplice stringa.

Questa singola scelta di progettazione ha conseguenze enormi per i database. Una chiave primaria UUIDv4 casuale finisce in un punto imprevedibile in un indice B-tree a ogni inserimento, il che frammenta l'indice, sovraccarica la cache e degrada lentamente le prestazioni di scrittura man mano che una tabella cresce. Un ULID, poiché ha il prefisso temporale, finisce ogni volta alla fine dell'indice o vicino ad essa — gli inserimenti restano sequenziali, l'indice resta compatto e le scansioni di intervallo su una finestra temporale diventano economiche. Ottieni la generazione senza coordinamento di un UUID e la località di inserimento di un intero auto-incrementale, senza esporre un contatore sequenziale indovinabile.

I dettagli di codifica sono deliberati. La Base32 di Crockford esclude le lettere I, L, O e U, sia per evitare la confusione visiva con le cifre 1 e 0 sia per rendere la stringa insensibile alle maiuscole in input. Il risultato è 26 caratteri senza trattini che si possono inserire in tutta sicurezza in un URL, in un nome di file o in un header di richiesta senza escaping — notevolmente più corti della forma con trattini di 36 caratteri di un UUID. Il timestamp a 48 bit non si esaurisce per lungo tempo: può rappresentare date fino all'anno 10889 prima che il contatore di millisecondi vada in overflow.

Gli ULID non sono lo strumento giusto per ogni cosa. Il timestamp incorporato rivela quando un record è stato creato, il che è una caratteristica per il debug e l'ordinamento ma una piccola fuga di informazioni se preferisci non esporla. E se il tuo stack è vincolato al tipo UUID, potresti preferire UUIDv7, che applica la stessa idea di prefisso temporale dentro il formato UUID standard. Ma quando vuoi identificatori corti, sicuri per gli URL e ordinabili che puoi coniare su qualsiasi nodo e da cui rileggere un timestamp, un ULID è un'eccellente scelta predefinita — e poiché è solo di 128 bit, puoi sempre convertirlo da e verso un UUID con la scheda Converti di questo strumento.

// Browser / Node with the `ulid` package
import { ulid, decodeTime } from 'ulid';

const id = ulid();          // e.g. 01KVT0F720ZK9N4T2QX7VR8WMC
const ts = decodeTime(id);  // 1782210600000  ->  2026-06-23T10:30:00.000Z

// Monotonic factory: strictly increasing within the same millisecond
import { monotonicFactory } from 'ulid';
const next = monotonicFactory();
next(1782210600000); // 01KVT0F720ZK9N4T2QX7VR8WMC
next(1782210600000); // 01KVT0F720ZK9N4T2QX7VR8WMD
next(1782210600000); // 01KVT0F720ZK9N4T2QX7VR8WME

Caratteristiche principali

Genera, decodifica e converti in un'unica pagina

Tre schede coprono l'intero flusso di lavoro ULID: conia nuovi ULID, decodificane uno esistente per leggerne il timestamp e converti senza perdite tra ULID e UUID. La maggior parte degli strumenti concorrenti fa solo la prima cosa; qui l'intero ciclo completo vive in un'unica pagina.

Decoder di timestamp

Incolla un qualsiasi ULID e leggi l'esatto millisecondo in cui è stato creato — mostrato in UTC, nella tua ora locale e come millisecondi Unix grezzi — più il segmento di casualità a 80 bit. Verifica quando un identificatore è stato coniato senza alcuna interrogazione del database.

Conversione ULID ↔ UUID senza perdite

Un ULID e un UUID sono entrambi a 128 bit, quindi la conversione è esatta e reversibile. La scheda Converti rileva automaticamente quale formato hai incollato e produce l'altro, permettendoti di fare da ponte tra un ULID ordinabile e una colonna o API tipizzata UUID senza perdere un solo bit.

Modalità monotonica

Ti serve un ordinamento rigoroso anche per ID creati nello stesso millisecondo? La modalità monotonica incrementa la casualità così ogni ULID è garantito maggiore del precedente, mantenendo perfettamente ordinato un ciclo di inserimento serrato.

Generazione in batch

Crea fino a 50 ULID alla volta e copia l'intero insieme con Copia tutto. Ideale per popolare fixture di test, inserimenti di massa o per riempire una tabella di lookup senza fare clic cinquanta volte.

Timestamp personalizzato

Incorpora un istante specifico anziché l'ora attuale — utile per dati di test deterministici o per retrodatare record durante una migrazione preservando la proprietà di ordinabilità.

Casualità crittograficamente sicura

Gli 80 bit casuali provengono da crypto.getRandomValues, il CSPRNG del browser — mai Math.random — quindi ogni ULID è imprevedibile e le collisioni nello stesso millisecondo sono incredibilmente improbabili.

100% privato, solo nel browser

Ogni ULID viene generato, decodificato e convertito interamente sul tuo dispositivo. Nessuna richiesta di rete, nessun log, nessuna memorizzazione — verificalo tu stesso in DevTools → Network. Gli identificatori non raggiungono mai una terza parte.

Esempi di ULID

Genera un singolo ULID

Mode: Standard · Quantity: 1
01KVT0F720ZK9N4T2QX7VR8WMC

Un ULID è composto da 26 caratteri di Base32 di Crockford. I primi 10 caratteri codificano un timestamp a 48 bit in millisecondi e gli ultimi 16 codificano 80 bit di casualità crittograficamente sicura estratta da crypto.getRandomValues. Poiché il timestamp viene per primo e la Base32 preserva l'ordine dei byte, gli ULID generati più tardi si ordinano sempre dopo quelli precedenti come semplici stringhe — senza bisogno di un indice separato. Fai clic su Copia per prendere il valore; fai di nuovo clic su Genera per uno nuovo.

Decodifica un ULID per leggerne il timestamp

01ARYZ6S41TSV4RRFFQ69G5FAV
Timestamp (UTC): 2016-07-30T22:36:16.385Z · Randomness: TSV4RRFFQ69G5FAV

La decodifica riconverte i primi 10 caratteri nel valore a 48 bit in millisecondi incorporato al momento della creazione — qui 1469918176385 ms, ovvero 2016-07-30T22:36:16.385Z. Questo è l'esempio canonico della specifica ULID. La scheda Decodifica mostra il timestamp in UTC e nella tua ora locale, i millisecondi Unix grezzi e il segmento di casualità a 80 bit, così puoi verificare esattamente quando un identificatore è stato coniato senza alcuna interrogazione del database.

Converti un ULID in un UUID

01KVT0F720ZK9N4T2QX7VR8WMC
019ef407-9c40-fcd3-5268-57e9f784728c

Un ULID e un UUID sono entrambi esattamente di 128 bit, quindi la conversione è senza perdite e completamente reversibile — gli stessi bit vengono semplicemente ricodificati dalla Base32 di Crockford in esadecimale con trattini. La scheda Converti rileva automaticamente se hai incollato un ULID o un UUID e converte nell'altra forma. Questo ti permette di archiviare ULID in una colonna UUID o di consegnare un ULID a un sistema che parla solo UUID, per poi riconvertirlo quando ti serve di nuovo la stringa ordinabile.

Genera in batch ULID monotonici

Mode: Monotonic · Quantity: 3 (same millisecond)
01KVT0F720ZK9N4T2QX7VR8WMC
01KVT0F720ZK9N4T2QX7VR8WMD
01KVT0F720ZK9N4T2QX7VR8WME

Quando molti ID vengono creati nello stesso millisecondo, gli ULID standard condividono il prefisso temporale di 10 caratteri ma le loro code casuali non sono ordinate. La modalità monotonica risolve questo: all'interno di un millisecondo incrementa di uno la casualità precedente, così ogni ULID è strettamente maggiore del precedente e un batch resta perfettamente ordinato. Nota che i tre valori differiscono solo nell'ultimo carattere (C, D, E) — ideale per inserimenti ad alto throughput dove l'ordinamento deve reggere anche a frequenze inferiori al millisecondo.

Genera un ULID per una data specifica

Custom time: 2026-06-23 10:30:00 UTC
01KVT0F720… (time component 01KVT0F720)

Imposta un timestamp personalizzato e il generatore incorpora quell'esatto istante anziché l'ora attuale, riempiendo comunque la casualità da un RNG sicuro. Il componente temporale di 10 caratteri per 2026-06-23T10:30:00.000Z è 01KVT0F720. È utile per popolare fixture di test con identificatori deterministici e ordinati per tempo, o per retrodatare record durante una migrazione mantenendo intatta la proprietà di ordinabilità.

Come usare il generatore ULID

  1. 1

    Scegli una modalità di generazione

    La modalità Standard dà a ogni ULID nuova casualità a 80 bit. La modalità Monotonica garantisce che gli ULID creati nello stesso millisecondo siano strettamente crescenti — scegliela per inserimenti ad alto throughput dove l'ordinamento deve reggere anche a frequenze inferiori al millisecondo.

  2. 2

    Imposta quantità, formato e (facoltativamente) un'ora personalizzata

    Genera da 1 a 50 ULID alla volta. L'output è in MAIUSCOLO per impostazione predefinita — la forma canonica dell'ULID — oppure passa al minuscolo. Lascia l'ora vuota per timbrare l'istante attuale, o imposta un timestamp personalizzato per incorporare un momento specifico per fixture o record retrodatati.

  3. 3

    Genera e copia

    Fai clic su Genera ULID. Usa Copia su qualsiasi singolo valore, o Copia tutto per prendere l'intero batch come testo separato da a capo, pronto da incollare nel codice, in un file di seed o in un foglio di calcolo.

  4. 4

    Decodifica un ULID per leggerne il timestamp

    Nella scheda Decodifica, incolla un qualsiasi ULID per estrarre il timestamp di creazione a 48 bit in UTC e nell'ora locale, i millisecondi Unix grezzi e la casualità a 80 bit — interamente nel tuo browser, senza alcuna ricerca richiesta.

  5. 5

    Converti tra ULID e UUID

    Nella scheda ULID ↔ UUID, incolla un ULID o un UUID; lo strumento rileva automaticamente l'input e converte nell'altro formato senza perdite. Archivia ULID in colonne UUID, oppure consegna un ULID a un sistema che accetta solo UUID e riconvertilo quando ti serve la stringa ordinabile.

Common Errors

Trattare gli ULID dello stesso millisecondo come ordinati

Gli ULID standard creati in un millisecondo condividono il prefisso temporale ma hanno code casuali non ordinate, quindi il loro ordine relativo è indefinito. Se dipendi da un ordinamento rigoroso a quella frequenza, usa invece la modalità monotonica.

✗ Errato
Standard mode, 3 IDs in one ms  →  order within the ms is random
✓ Corretto
Monotonic mode, 3 IDs in one ms  →  …WMC < …WMD < …WME

Aspettarsi che un ULID convertito sia un UUIDv4 valido

Convertire un ULID in forma UUID ricodifica gli stessi 128 bit; non imposta i campi di versione e variante dell'UUID. Il risultato è una stringa UUID a 128 bit valida ma non risulterà come versione 4 o 7 se una libreria ne ispeziona quei bit.

✗ Errato
uuid.version(ulidToUuid(id))  →  not 4 (bits are the ULID's)
✓ Corretto
Treat it as an opaque 128-bit value, or generate a real UUIDv7 instead

Usare a mano le minuscole i, l, o in un ULID

La Base32 di Crockford esclude I, L, O e U. I decoder mappano I e L a 1 e O a 0, ma digitare a mano quelle lettere in un ULID è soggetto a errori. Copia gli ULID anziché ridigitarli.

✗ Errato
01ARYZ6S41TSV4RRFFQ69G5FAO  →  ambiguous O
✓ Corretto
01ARYZ6S41TSV4RRFFQ69G5FAV  →  canonical characters only

A cosa servono gli ULID

Chiavi primarie di database che restano ordinate
Usa gli ULID come chiavi primarie per ottenere la generazione senza coordinamento di un UUID con la località di inserimento di un intero auto-incrementale. Poiché hanno il prefisso temporale, le nuove righe si aggiungono vicino alla fine di un indice B-tree anziché disperdersi come gli UUIDv4, mantenendo gli inserimenti veloci e l'indice compatto man mano che la tabella cresce.
Sistemi distribuiti senza una sequenza centrale
Genera identificatori su qualsiasi nodo — servizio, edge worker o client — senza un contatore condiviso e senza coordinamento delle collisioni, eppure ordina comunque tutto per tempo di creazione a posteriori. Gli ULID danno ai microservizi una chiave univoca e ordinata senza un viaggio di andata e ritorno al database per allocarla.
Log di eventi e ID di messaggi
Timbra eventi, righe di log o messaggi in coda con ULID monotonici così restano in rigoroso ordine cronologico anche quando molti sono prodotti nello stesso millisecondo. La scansione di intervallo su una finestra temporale diventa un semplice confronto di stringhe.
Identificatori pubblici sicuri per gli URL
Un ULID è composto da 26 caratteri senza trattini e con un alfabeto sicuro per gli URL, quindi si inserisce in un percorso, un nome di file o un header senza escaping ed è più corto di un UUID di 36 caratteri. Decodifica in seguito il timestamp incorporato per vedere quando la risorsa è stata creata.
Ponte verso un sistema solo UUID
Lavori con una colonna di database o un'API che accetta solo UUID? Genera ULID ordinabili, convertili in forma UUID per l'archiviazione o il trasporto, e riconvertili quando ti serve la stringa ordinabile e compatta — il valore a 128 bit è preservato esattamente in entrambe le direzioni.
Fixture di test deterministiche
Popola i test con ULID a timestamp scelti usando l'opzione dell'ora personalizzata, così le fixture sono riproducibili e già ordinate per tempo. Decodificale nelle asserzioni per verificare il tempo di creazione che il tuo codice ha registrato.

Come funzionano gli ULID

Layout a 128 bit: 48 bit di tempo + 80 bit di casualità
Un ULID è esattamente di 128 bit. I 48 bit alti sono un timestamp Unix in millisecondi; gli 80 bit bassi sono casuali. Codificati in Base32 di Crockford a 5 bit per carattere, sono 10 caratteri per il tempo e 16 per la casualità — 26 caratteri in totale. Il carattere iniziale è sempre 7 o inferiore perché 48 bit non riempiono il gruppo superiore di 5 bit.
Codifica Base32 di Crockford
Gli ULID usano l'alfabeto Base32 di Crockford (0–9 e A–Z escludendo I, L, O e U). L'eliminazione di queste quattro lettere evita la confusione con le cifre 1 e 0 e permette ai decoder di trattare la stringa in modo insensibile alle maiuscole, mappando I e L a 1 e O a 0 in input. L'alfabeto è ordinato, ed è questo che fa sì che la stringa codificata si ordini allo stesso modo dei bit sottostanti.
Ordinabilità lessicografica
Poiché il timestamp è il componente più significativo e l'alfabeto Base32 preserva l'ordine, confrontare due ULID come stringhe dà lo stesso risultato del confronto dei loro valori a 128 bit, che dà lo stesso risultato del confronto dei loro tempi di creazione. È questo che permette a un semplice ORDER BY o ordinamento di array di produrre l'ordine cronologico senza alcun indice aggiuntivo.
Monotonicità all'interno di un millisecondo
L'opzione monotonica della specifica ULID mantiene stabile l'ordinamento per gli ID coniati nello stesso millisecondo: la casualità del primo ID in un millisecondo viene generata normalmente, e ogni ID successivo in quel millisecondo è il valore casuale precedente più uno. Questo strumento lo implementa incrementando la casualità a 80 bit come intero big-endian.
Casualità sicura tramite crypto.getRandomValues
Gli 80 bit casuali sono riempiti da crypto.getRandomValues, il CSPRNG di Web Crypto, non Math.random. Con 80 bit di entropia, generare anche milioni di ULID nello stesso millisecondo mantiene la probabilità di collisione trascurabilmente piccola.
ULID ↔ UUID è una pura ricodifica
La conversione tra ULID e UUID non cambia alcun bit — ricodifica gli stessi 128 bit dalla Base32 di Crockford all'esadecimale con trattini o viceversa. Di conseguenza il ciclo completo è esatto: un ULID convertito in UUID e di nuovo indietro è identico byte per byte all'originale. Nota che i byte di un ULID non impostano i campi di versione e variante dell'UUID, quindi l'UUID risultante è un valore a 128 bit valido ma non un UUIDv4 o v7 con tag di versione.

Buone pratiche per gli ULID

Usa la modalità monotonica per inserimenti ad alto throughput
Se il tuo sistema può creare più di un identificatore per millisecondo e ti affidi all'ordinamento, genera ULID monotonici. Gli ULID standard non sono ordinati all'interno di un millisecondo; quelli monotonici sono strettamente crescenti, così un batch resta ordinato indipendentemente da quanto velocemente li conii.
Archivia gli ULID in modo compatto
Un ULID è di 128 bit — archivialo come 16 byte binari o una colonna tipizzata UUID anziché come un campo di testo di 26 caratteri quando lo spazio e la dimensione dell'indice contano. Converti nella stringa Base32 solo ai margini dove esseri umani o URL la vedono. La scheda Converti di questo strumento ti dà la forma UUID per l'archiviazione.
Ricorda che il timestamp è visibile
Un ULID rivela il proprio tempo di creazione a chiunque possa leggerlo. È ottimo per il debug e l'ordinamento, ma se esporre il tempo di creazione è una preoccupazione — ad esempio, in un identificatore pubblico — valuta quella fuga, oppure usa un UUIDv4 completamente casuale dove l'ordinamento non conta.
Genera sempre con un CSPRNG
La garanzia di unicità dipende dal fatto che gli 80 bit casuali siano imprevedibili. Usa una fonte crittograficamente sicura come crypto.getRandomValues, come fa questo strumento — mai Math.random, la cui prevedibilità potrebbe far collidere o indovinare gli identificatori.
Scegli ULID o UUIDv7 deliberatamente
Entrambi danno ID a 128 bit ordinati per tempo. Scegli ULID per la stringa più corta e sicura per gli URL; scegli UUIDv7 quando devi restare nel formato UUID standard con i bit di versione e variante. Standardizzati su uno per sistema, e usa la scheda Converti quando devi attraversare il confine.

ULID — domande frequenti

Cos'è un ULID?
Un ULID (Universally Unique Lexicographically Sortable Identifier) è un identificatore a 128 bit progettato come alternativa più ordinabile e più compatta a un UUID. È scritto come 26 caratteri di Base32 di Crockford: i primi 10 caratteri contengono un timestamp a 48 bit in millisecondi dall'epoca Unix, e i restanti 16 caratteri contengono 80 bit di casualità. Poiché il timestamp è la parte più significativa e la Base32 preserva l'ordine, gli ULID creati più tardi si ordinano sempre dopo quelli precedenti quando confrontati come semplici stringhe — quindi una colonna di ULID è naturalmente ordinata per tempo. L'alfabeto di Crockford esclude deliberatamente le lettere I, L, O e U per evitare confusione con le cifre e per mantenere la stringa insensibile alle maiuscole e sicura per gli URL. Gli ULID sono stati introdotti per risolvere un problema pratico con gli UUIDv4 casuali: gli identificatori casuali si disperdono in un indice di database, danneggiando le prestazioni di inserimento, mentre un ULID con prefisso temporale finisce ogni volta vicino alla fine dell'indice.
ULID vs UUID — quale dovrei usare?
Usa un ULID quando vuoi identificatori che siano sia univoci sia naturalmente ordinabili per tempo di creazione; usa un classico UUIDv4 quando ti serve specificamente un identificatore opaco e completamente casuale senza timestamp incorporato. Le differenze chiave: un ULID è composto da 26 caratteri di Base32 contro i 36 caratteri con trattini di un UUID, quindi gli ULID sono più corti e sicuri per gli URL senza escaping. Un ULID codifica il proprio tempo di creazione, cosa che un UUIDv4 non fa — utile per l'ordinamento e il debug, ma da tenere presente se preferisci non esporre quando un record è stato creato. Entrambi sono a 128 bit ed entrambi evitano il coordinamento, quindi il rischio di collisione è trascurabile per l'uno o per l'altro. Se il tuo stack si standardizza sugli UUID ma vuoi comunque l'ordinamento temporale, UUIDv7 (dal Generatore UUID) offre un design simile con prefisso temporale in formato UUID — oppure puoi generare ULID qui e convertirli in UUID con la scheda Converti.
Gli ULID sono ordinabili?
Sì — è questa la caratteristica distintiva. Poiché il timestamp a 48 bit in millisecondi occupa i primi 10 caratteri e la Base32 di Crockford preserva l'ordine lessicografico, ordinare gli ULID come stringhe ordinarie li ordina per tempo di creazione. Questo vale in qualsiasi sistema che confronta le stringhe byte per byte: un ORDER BY di database, un sorted set, un elenco di file o un semplice ordinamento di array. Il vantaggio pratico è nelle prestazioni del database: le chiavi ordinate per tempo si aggiungono alla fine di un indice B-tree anziché disperdersi casualmente come gli UUIDv4, il che mantiene gli inserimenti veloci e l'indice compatto. All'interno di un singolo millisecondo l'ordinamento degli ULID standard è casuale, quindi se ti serve un ordinamento rigoroso anche per ID coniati nello stesso millisecondo, usa la modalità monotonica, che incrementa la casualità così ogni valore è garantito maggiore del precedente.
Come decodifico il timestamp di un ULID?
Incolla l'ULID nella scheda Decodifica e lo strumento estrae istantaneamente il tempo di creazione incorporato, interamente nel tuo browser. Legge i primi 10 caratteri, li converte dalla Base32 di Crockford a un intero a 48 bit di millisecondi dall'epoca Unix, e mostra quell'istante in UTC e nella tua ora locale insieme al valore in millisecondi Unix grezzi. Ad esempio, l'ULID canonico 01ARYZ6S41TSV4RRFFQ69G5FAV decodifica a 1469918176385 ms, ovvero 2016-07-30T22:36:16.385Z. I restanti 16 caratteri sono la casualità a 80 bit e non hanno alcun significato da decodificare. Leggere il timestamp in questo modo è comodo per il debug, per verificare quando un record è stato creato, o per controllare che un identificatore sia davvero un ULID — senza alcuna interrogazione del database.
Cos'è un ULID monotonico?
Un ULID monotonico garantisce un ordinamento rigoroso anche per identificatori generati all'interno dello stesso millisecondo. Gli ULID standard creati in un millisecondo condividono lo stesso prefisso temporale di 10 caratteri, ma le loro code casuali a 80 bit sono indipendenti, quindi il loro ordine relativo non è definito. La generazione monotonica risolve questo: il primo ULID in un dato millisecondo riceve casualità nuova, e ogni ULID successivo in quello stesso millisecondo viene prodotto incrementando di uno la casualità precedente. Il risultato è una sequenza in cui ogni valore è strettamente maggiore di quello prima, così un batch inserito in un ciclo serrato resta perfettamente ordinato. Questo è importante per i sistemi ad alto throughput — log di eventi, code di messaggi, importazioni di massa — dove molte righe possono essere create più velocemente di quanto scatti l'orologio al millisecondo e ti serve comunque una chiave stabile e crescente.
Questo generatore di ULID è sicuro e privato?
Sì su entrambi i fronti. La casualità in ogni ULID proviene da crypto.getRandomValues, il generatore di numeri casuali crittograficamente sicuro del browser — mai Math.random — quindi gli 80 bit casuali sono imprevedibili e la probabilità che due ULID collidano nello stesso millisecondo è incredibilmente piccola. Altrettanto importante, tutto viene eseguito localmente: gli ULID vengono generati, decodificati e convertiti interamente sul tuo dispositivo. Nulla viene caricato, registrato o memorizzato, e puoi confermarlo aprendo DevTools e osservando la scheda Network restare silenziosa mentre fai clic su Genera. Questa proprietà di privacy è l'intera ragione per creare identificatori nel browser anziché su un server che potrebbe, in linea di principio, conservare una copia di ogni valore che distribuisce.
Qual è la differenza tra ULID e UUIDv7?
Sia ULID sia UUIDv7 sono identificatori a 128 bit ordinati per tempo che mettono per primo un timestamp in millisecondi, quindi entrambi si ordinano per tempo di creazione ed entrambi si indicizzano in modo efficiente — l'idea di fondo è la stessa. La differenza è nel formato e nella codifica. Un ULID è presentato come 26 caratteri di Base32 di Crockford senza trattini, il che è più corto e sicuro per gli URL; UUIDv7 è presentato nel layout UUID standard di 36 caratteri esadecimali con trattini e porta i bit di versione e variante in posizioni fisse, quindi è un UUID RFC 9562 pienamente valido accettato da qualsiasi libreria UUID. Scegli UUIDv7 quando devi restare nell'ecosistema UUID (una colonna di database UUID, un'API tipizzata UUID); scegli ULID quando vuoi la stringa ordinabile più corta. Poiché entrambi sono a 128 bit, puoi generare un ULID qui e convertirlo in forma UUID con la scheda Converti, oppure generare un UUIDv7 con il Generatore UUID.

Strumenti correlati

Vedi tutti gli strumenti →