Gerador de ULID e NanoID
ULID & NanoID Generator
Gera ULIDs ordenáveis ou NanoIDs curtos com alfabeto e comprimento escolhidos, e mostra a chance de colisão.
Gera ULIDs e NanoIDs — os dois formatos de id curto que as pessoas pegam quando um UUID de 36 caracteres é longo demais para uma URL. Também mostra a aritmética de colisão para o comprimento e o alfabeto que você escolheu, que é a parte que decide se o id é curto o bastante ou curto demais.
26 caracteres, ordenáveis, com um timestamp em milissegundos nos dez primeiros.
0 id
Qual a chance de uma colisão
Entropia
80,0 bits
Ids até uma chance de 1%
1,56e11
A 1.000 por hora
18 mil anos
O limite do aniversário: P ≈ 1 − exp(−n²/2N). O número abaixo é onde isso chega a um por cento.
Decodificar um ULID
Os ULIDs seguem a especificação ULID: 48 bits de timestamp em milissegundos e depois 80 bits aleatórios, em base32 de Crockford — que deixa de fora I, L, O e U para ninguém ler errado em voz alta.
Como usar
Escolha ULID ou NanoID
Um ULID tem 26 caracteres fixos com um timestamp em milissegundos nos dez primeiros, então ele se ordena. Um NanoID tem qualquer comprimento sobre qualquer alfabeto e é entropia pura: nada nele é ordenado.
Defina o comprimento e o alfabeto
Para NanoID, o padrão são 21 caracteres sobre 64 símbolos. Um id mais curto ou um alfabeto menor — digamos, um conjunto sem caracteres parecidos para algo que as pessoas leem em voz alta — custa entropia, e o painel abaixo mostra exatamente quanto.
Leia a linha de colisão
Ela dá o número de ids até uma chance de um por cento de qualquer colisão, e quanto tempo isso é a mil por dia. Abaixo de 64 bits de entropia a página avisa, porque essa é a linha entre um slug de URL e algo que não pode ser adivinhável.
Decodifique um ULID se você tiver um
Cole e o painel imprime a hora de criação e a cauda aleatória, útil para descobrir quando um registro foi de fato criado.
Perguntas frequentes
Um id curto é seguro como link secreto?
Só se a entropia dele disser que sim. Um NanoID de 21 caracteres tem cerca de 126 bits e está bem; um de 10 caracteres tem por volta de 60 e é adivinhável por qualquer um disposto a gastar dinheiro. A página marca tudo abaixo de 64 bits exatamente por isso: um id curto é um id curto, não um segredo.
Por que um alfabeto personalizado ainda sai uniforme?
Porque os símbolos são sorteados com amostragem por rejeição em vez de `random % length`. O atalho do módulo enviesa todo alfabeto cujo comprimento não divide 256: o bug comum dos geradores de id feitos em casa, e invisível até alguém contar.
O que Monotônico faz em um ULID?
Dentro de um mesmo milissegundo, ULIDs comuns ficam em ordem aleatória entre si. O modo monotônico incrementa o campo aleatório em vez de sorteá-lo de novo, então uma rajada gerada no mesmo milissegundo ainda se ordena na ordem em que foi criada.
Por que um ULID usa base32 sem I, L, O e U?
É o alfabeto de Crockford: ele tira os caracteres que se confundem quando uma pessoa lê um id em voz alta ou copia de uma tela. O preço são 32 símbolos em vez de 36, e é por isso que um ULID precisa de 26 caracteres onde um NanoID precisa de 21.
Pode receber de
Em seguida
Estas aceitam o que esta ferramenta produz, então o resultado pode ir direto.
Gerador de senhas
Password Generator
Gera senhas aleatórias com regras de comprimento, conjunto de caracteres e caracteres ambíguos, em lote se preciso — nada é transmitido nem armazenado.
Gerador de chave aleatória
Random Key Generator
Gera bytes aleatórios criptográficos como hex, Base64 ou Base64URL no comprimento escolhido, para segredos de aplicação.
Gerador de UUID
UUID Generator
Gera UUID v1, v4, v5 e v7 em lote, e decodifica o timestamp de um valor v1 ou v7.
Codificar e decodificar Base64
Base64 Encoder & Decoder
Codifica e decodifica Base64 e Base64URL para texto ou arquivos, tratando UTF-8 corretamente.
curl para código
curl to Code
Converte um comando curl em fetch, axios, Python requests, Go, PHP ou PowerShell.
Hash de texto
Text Hash
Calcula MD5, SHA-1, SHA-256, SHA-384, SHA-512 e CRC-32 de uma string, com opção de saída em maiúsculas e Base64.