Identificadores

Gerador de ULIDe decodificador

Gere um lote quando quiser ou confira valores existentes por linha. A decodificação pode atualizar automaticamente.

Gerador de ULID

Entrada

Deixe vazio para ler o instante atual uma vez para o lote. Ou informe um inteiro de 0 a 281474976710655. Não há detecção automática de segundos ou datas ISO.

O processamento ocorre neste navegador. As entradas não são enviadas a um servidor.

Resultado

Configurações

Ativado: primeiro sufixo aleatório de 80 bits, seguido de incrementos de um. Desativado: cada sufixo é sorteado de forma independente. Não há garantia de ordem entre cliques.

De 1 a 1.000 IDs; decodificação até 1.000 linhas físicas e 100.000 unidades UTF-16. A exportação inclui tudo.

Escolha as configurações e execute.

Quando a ordem dos IDs de um log parece errada, separar tempo e aleatoriedade ajuda a entender o motivo. O gerador de ULID mostra se os valores pertencem a milissegundos diferentes ou se apenas a parte final mudou no mesmo instante.

Escolher um horário de teste fixa o prefixo, mas não o valor aleatório. Ao ordenar uma lista, cada registro mantém o número da linha original, permitindo comparar posições sem modificar o texto de entrada.

O que este gerador de ULID mostra

Tempo legível sem esconder a unidade

O gerador de ULID separa os dez caracteres de tempo dos dezesseis aleatórios. O inteiro em milissegundos aparece ao lado da data UTC, facilitando identificar quando um valor em segundos foi usado por engano.

Um identificador dividido em um prefixo ligado a um relógio e um sufixo aleatório opaco.

Rastrear a origem depois de ordenar

Cada entrada preserva sourceLine, inclusive os valores repetidos. O texto original fica intacto enquanto a ordem do relatório muda, permitindo conferir por que uma linha apareceu em outra posição.

Linhas de identificadores fora de ordem se conectam às posições ordenadas, mantendo a origem visível.

Defina o tempo e o alcance da ordem

01

Compare usando um milissegundo fixo

No modo de geração, o exemplo só preenche o horário, sem criar IDs. Apenas o campo vazio significa agora; 1700000000 também é interpretado literalmente como milissegundos.

  • O relógio é consultado uma única vez por lote.
02

Escolha a monotonicidade

Ativada, ela incrementa a parte final dentro do lote. Desativada, os sufixos independentes de um mesmo milissegundo podem ficar em uma ordem diferente da ordem de geração.

  • Cada novo clique começa com um novo sorteio.
03

Compare a linha de origem

O exemplo de decodificação foi embaralhado de propósito. Escolha ASCII crescente e compare sourceLine. A atualização automática espera 350 ms; quando desligada, use o botão ou Ctrl/Cmd+Enter.

  • Editar bloqueia a exportação imediatamente. Exemplo e Limpar exigem prévia e permitem desfazer uma vez.

Identificadores ordenáveis com campos verificáveis

Gerar lotes no mesmo instante

Crie de 1 a 1.000 IDs canônicos em maiúsculas. O horário fixo determina só o prefixo. O primeiro sufixo vem de bytes aleatórios seguros; os demais são incrementados ou sorteados conforme o modo.

Ler timestamp e aleatoriedade

O relatório mostra milissegundos Unix, data UTC ISO, os dois segmentos e a parte aleatória em hexadecimal. Não é possível recuperar uma identidade de usuário ou máquina desse sufixo.

Validar sem descartar erros

Comprimento incorreto, caracteres inválidos e estouro de faixa mostram linha e coluna originais. Uma linha inválida faz o lote inteiro falhar, evitando exportar apenas os valores que passaram sem avisar.

Exportar todas as linhas

A prévia começa com 50 registros e cresce de 100 em 100. TXT contém os IDs gerados; JSON inclui metadados do lote ou todos os campos decodificados, mesmo os que ainda não foram exibidos.

Limites de formato e de garantia

Só a caixa das letras é normalizada
São exigidos 26 caracteres ASCII Crockford Base32 por linha. I/L não viram 1 e O não vira 0. Espaços, linhas vazias, aspas e hífens causam erro; duplicatas são preservadas.
Milissegundos sem sinal em 48 bits
O intervalo é 0–281474976710655 e o primeiro caractere deve ser 0–7. Uma data muito distante pode ser válida no formato. O tempo é configurável, portanto não prova a criação ou inserção real.
Ordem monotônica apenas neste lote
Se o sufixo de 80 bits estourar, todo o lote é rejeitado. O tempo não avança e não há novo sorteio para esconder o erro. Cliques, abas e dispositivos não compartilham estado.
Não é UUID nem segredo
A largura comum de 128 bits não torna iguais o texto e os campos. Não há conversão de versão UUID nem consulta da existência de registros. O tempo é legível e vizinhos monotônicos são previsíveis: não use como senha ou token de acesso.
Entrada e saída com limites explícitos
Geração de até 1.000 IDs; entrada de até 1.000 linhas físicas e 100.000 unidades UTF-16. Sem importação de arquivo ou URL, formato SQL, remoção de duplicatas ou reescrita da entrada ordenada.

Dúvidas sobre o gerador de ULID

Posso extrair o tempo de criação de um ULID?

Sim. Os primeiros dez caracteres permitem recuperar os milissegundos Unix e mostrar a data UTC. Porém, o horário pode ter sido escolhido manualmente ou vir de um relógio incorreto. É o instante codificado, não uma prova de quando o registro foi criado.

O que é monotonicidade em ULIDs?

O gerador de ULID escolhe um sufixo aleatório inicial e soma um aos próximos IDs do mesmo lote. Um lote concluído com sucesso fica estritamente crescente. Cada novo clique é independente, sem garantia entre lotes ou máquinas.

Qual conjunto de caracteres o ULID usa?

O formato usa Crockford Base32, com números e letras latinas, excluindo I, L, O e U. Aqui, letras minúsculas válidas são aceitas e convertidas para maiúsculas antes da ordenação ASCII. Letras ambíguas não são corrigidas.

O ULID é criptograficamente seguro?

Esta implementação usa a fonte criptográfica de aleatoriedade do navegador, mas o formato não é um segredo. A parte de tempo é pública e sufixos monotônicos adjacentes podem ser previstos. Para autorização, use um mecanismo próprio de tokens.

ULID e UUID v7 servem para a mesma coisa?

Ambos podem identificar registros com informação de tempo em milissegundos. UUID v7 se integra ao formato e às bibliotecas UUID; ULID usa texto Base32 de 26 caracteres. Escolha conforme o tipo aceito pelo banco e pelo restante do sistema.

Tem alguma dúvida sobre um ID?

Experimente o gerador de ULID

Use o gerador de ULID com um horário de teste fixo e depois confira o exemplo embaralhado, comparando o tempo com os números das linhas originais.