Gerador de ULID

Gerar ULIDs (Identificadores Lexicograficamente Classificáveis ​​Universalmente Únicos). 26 caracteres, seguros para URL, classificáveis por tempo e compatíveis com UUIDs.

Gerar ULID

Criar identificadores exclusivos classificáveis

ULIDs gerados

Clique em "Gerar ULIDs" para criar identificadores exclusivos

Perguntas frequentes

What is a ULID?

Um identificador de 26 caracteres que combina um carimbo de data/hora em milissegundos de 48 bits e 80 bits de aleatoriedade, permitindo que os IDs sejam ordenados pela hora de criação.

Porquê escolher ULID em vez de UUID?

Os ULIDs são ordenados lexicograficamente por tempo, são mais curtos e utilizam base32 Crockford seguro para URL, sem hífenes para gerir.

Can I trust the ordering?

Em milissegundos diferentes, sim. Dentro do mesmo milissegundo, a ordem entre dois ULIDs não é garantida.

Os ULIDs funcionam onde os UUIDs são utilizados?

Funcionam diretamente na maioria das colunas de texto e APIs, e converter entre ULID e UUID é simples quando ambos os formatos têm de coexistir.

Qual é o comprimento de um ULID e que caracteres utiliza?

Cada ULID tem exatamente 26 caracteres, utilizando Crockford Base32, que inclui os dígitos 0-9 e as letras A-Z, exceto I, L, O e U. Este comprimento fixo mantém os tamanhos das colunas da base de dados previsíveis e evita caracteres ambíguos quando os IDs são lidos em voz alta ou introduzidos manualmente.

Os ULIDs são seguros para utilizar em URLs e nomes de ficheiros?

Sim. Os ULIDs contêm apenas letras maiúsculas e dígitos, sem hífenes, barras ou símbolos, pelo que passam por URLs, segmentos de caminho e nomes de ficheiros sem codificação percentual. O comprimento de 26 caracteres também se ajusta confortavelmente a padrões de rotas e a linhas de registo.

Quantos ULIDs podem ser gerados no mesmo milissegundo?

A secção aleatória de 80 bits fornece cerca de 2^80 valores por milissegundo, tornando as colisões praticamente impossíveis. Se a sua aplicação criar vários IDs dentro do mesmo milissegundo, utilize o modo monotónico, que incrementa a parte aleatória em uma unidade, de modo a preservar a ordenação.

Como ler o carimbo de data/hora de um ULID?

Os primeiros 10 caracteres codificam o carimbo de data/hora Unix em milissegundos, enquanto os restantes 16 caracteres são aleatórios. Descodifique esses 10 caracteres de Crockford Base32 para um número e, em seguida, converta-o com qualquer ferramenta de carimbos de data/hora Unix para obter a hora exata de criação.

Estrutura ULID

Cada ULID consiste em duas partes: timestamp e aleatoriedade

TIMESTAMP (10 caracteres) ALEATORIEDADE (16 personagens)

01ARZ3NDEKTSV4RRFFQ69G5FAV

Exemplo: este ULID foi gerado em um milissegundo específico e inclui 80 bits de aleatoriedade

Carimbo de tempo (48 bits)

Milissegundos desde a época Unix (01/01/1970). Fornece classificação ordenada por tempo e dura até 10889 DC.

Aleatoriedade (80 bits)

Valor aleatório criptograficamente seguro. Fornece 1,21 quintilhão de IDs exclusivos por milissegundo.

Especificações técnicas

ULID foi projetado para ser classificável, seguro para URL e compatível com UUIDs

Recursos

  • Aleatoriedade criptograficamente segura
  • Somente geração do lado do cliente
  • Classificável lexicograficamente
  • Sem caracteres especiais (seguro para URL)

Especificações

  • 26 caracteres (128 bits)
  • Codificação Base32 de Crockford
  • carimbo de data e hora de 48 bits + aleatoriedade de 80 bits
  • 1,21 milhões de IDs por milissegundo

Referências e recursos