DevToolPal
PT

Gerador de ULID

Gere ULIDs: IDs únicos de 26 caracteres, ordenáveis por tempo, com aleatoriedade segura, em lotes de até 1000.

Roda localmente, nada é enviado

Opções

ULIDs

0 caracteres · 0 B

O que faz

Esta ferramenta gera ULIDs no seu navegador. Um ULID é um identificador de 128 bits, como um UUID, mas escrito com 26 caracteres e ordenável pela data de criação. Isso faz dos ULIDs uma boa escolha para chaves primárias de banco de dados, IDs de eventos e logs, nomes de arquivos e qualquer outra coisa que você queira listar na ordem de criação sem uma coluna de timestamp separada.

Um ULID tem duas partes:

  • Timestamp (10 primeiros caracteres): milissegundos desde a época Unix, 48 bits. Funciona até o ano 10889.
  • Aleatoriedade (16 últimos caracteres): 80 bits vindos do gerador de números aleatórios criptográfico do navegador.

Os ULIDs usam o alfabeto Base32 de Crockford 0123456789ABCDEFGHJKMNPQRSTVWXYZ. Ele deixa de fora I, L, O e U para que os IDs sejam fáceis de ler em voz alta e difíceis de digitar errado, e não contém caracteres que precisem de escape em URLs.

Como usar

  1. Escolha quantos IDs você precisa, de 1 a 1000.
  2. Ative Monotônico se os IDs precisarem manter a ordem mesmo quando vários forem criados no mesmo milissegundo. A parte aleatória passa então a ser incrementada em um a cada novo ID.
  3. Ative Minúsculas se o seu sistema armazena IDs em minúsculas. ULIDs não diferenciam maiúsculas de minúsculas, e a forma canônica é em maiúsculas.
  4. Copie a lista ou baixe-a como arquivo de texto. Clique em gerar de novo para obter um novo lote.

Exemplo

01ARZ3NDEKTSV4RRFFQ69G5FAV

Aqui, 01ARZ3NDEK é o timestamp 1469922850259 (2016-07-30 23:54:10.259 UTC) e TSV4RRFFQ69G5FAV é a parte aleatória. Dois ULIDs criados com um segundo de diferença compartilham os primeiros caracteres, e é por isso que uma simples ordenação de strings os coloca em ordem cronológica.

ULID comparado com UUID

Um UUID v4 aleatório espalha as novas linhas por um índice B-tree, o que deixa as inserções mais lentas em tabelas grandes. Os ULIDs são quase sempre crescentes, então as novas linhas caem no fim do índice, como acontece com um inteiro auto-incremento, e ainda assim são únicos entre máquinas sem coordenação. A contrapartida é que um ULID revela aproximadamente quando foi criado. Se isso importa, use um UUID v4.

Perguntas frequentes

› O que é um ULID?

Um ULID (Universally Unique Lexicographically Sortable Identifier) é um ID de 128 bits escrito como 26 caracteres em Base32 de Crockford. Os 10 primeiros caracteres codificam um timestamp em milissegundos e os 16 últimos são aleatórios.

› ULID ou UUID: qual devo usar?

Use um ULID quando quiser IDs que se ordenam pela data de criação, por exemplo como chaves de banco de dados ou IDs de log. Use UUID v4 quando o ID não puder revelar quando foi criado. O UUID v7 é uma alternativa padronizada que também é ordenada por tempo.

› O que o modo monotônico faz?

IDs criados no mesmo milissegundo normalmente recebem partes aleatórias independentes, então a ordem deles dentro daquele milissegundo é aleatória. No modo monotônico, a parte aleatória é incrementada em um, de modo que cada ID do lote fica estritamente depois do anterior na ordenação.

› Os IDs são gerados de forma segura?

Sim. A parte aleatória vem do gerador de números aleatórios criptográfico do navegador, e nada é enviado a um servidor.