Pular para o conteúdo

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.

🔒 Roda inteiramente no seu navegadorulidnanoidgeneratorid
Tipo

26 caracteres, ordenáveis, com um timestamp em milissegundos nos dez primeiros.

Quantos

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

    1. 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.

    2. 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.

    3. 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.

    4. 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.