Gerador de Nanoid

Gratuito DevTools

Gerador de Nanoid

IDs unicos pequenos, seguros e URL-friendly gerados com crypto.getRandomValues(). Personalize tamanho e alfabeto, calcule probabilidade de colisao.

2.1k usuarios Atualizado em Mar 2026 4.8/5
Avalie esta ferramenta:
4.8 (589 votos) Obrigado!
Gerar Nanoids

Configuracoes

Probabilidade de Colisao

Comparacao: Nanoid vs UUID vs ULID

CaracteristicaNanoidUUID v4ULID
Comprimento21 chars (padrao)36 chars (com hifens)26 chars
Bits de entropia~126 bits (21 chars x 6 bits)122 bits80 bits (aleatorio)
Ordenavel por tempoNaoNaoSim
URL-safeSim (padrao)SimSim
CustomizavelSim (tamanho + alfabeto)NaoLimitado
Criptograficamente seguroSimSimSim

Como Usar

Gere Nanoids customizados em segundos.

1
Configure o tamanho
Escolha quantos caracteres o Nanoid deve ter (4 a 64).
2
Escolha o alfabeto
Use o padrao, selecione um preset ou defina seu proprio alfabeto.
3
Clique em Gerar
Os Nanoids sao gerados com crypto.getRandomValues() — 100% seguro.
4
Copie os resultados
Copie individualmente ou use "Copiar Todos" para copiar todos de uma vez.

Nanoid: O Gerador de IDs Pequenos, Seguros e URL-safe para Aplicacoes Modernas

Neste artigo
  1. O que e Nanoid
  2. Algoritmo e seguranca
  3. Probabilidade de colisao
  4. Customizacao de tamanho e alfabeto
  5. Quando usar Nanoid
  6. Perguntas frequentes

1. O Que E Nanoid

Nanoid e uma biblioteca de geracao de IDs unicos criada por Andrey Sitnik, projetada para ser uma alternativa mais compacta ao UUID. Com 21 caracteres no formato padrao (vs 36 do UUID com hifens), ele oferece ~126 bits de entropia — mais que os 122 bits do UUID v4 — em um formato mais curto e URL-safe.

A biblioteca oficial tem mais de 20 milhoes de downloads semanais no npm, o que a torna uma das bibliotecas de geracao de IDs mais populares do ecossistema JavaScript.

2. Algoritmo e Seguranca

O Nanoid usa crypto.getRandomValues() (navegadores) ou crypto.randomBytes() (Node.js) para gerar bytes aleatorios criptograficamente seguros. O algoritmo usa um metodo de rejection sampling para eliminar bias na selecao de caracteres:

  1. Calcula uma mascara de bits para o tamanho do alfabeto.
  2. Gera bytes aleatorios em lote (step = 1.6 * mask * size / alphabetSize).
  3. Aplica a mascara a cada byte e aceita apenas valores dentro do range do alfabeto.
  4. Descarta bytes fora do range e continua ate ter o tamanho desejado.

Esse processo garante distribuicao uniforme sem bias — um requisito fundamental para IDs criptograficamente seguros.

"O Nanoid e seguro por design: usa CSPRNG nativo, rejeita bytes com bias e produz IDs com entropia alta em formato compacto."

3. Probabilidade de Colisao

A probabilidade de colisao e calculada pelo problema do aniversario. Para o Nanoid padrao (21 chars, alfabeto de 64 chars):

  • Combinacoes possiveis: 64^21 ≈ 2.89 × 10^37
  • 50% de chance de colisao apos: ~1.2 × 10^19 IDs gerados
  • Em contexto pratico: gerando 1 bilhao de IDs por segundo, levaria ~383 anos para 1% de chance de colisao

4. Customizacao de Tamanho e Alfabeto

Uma das principais vantagens do Nanoid e a customizacao total:

  • Tamanho menor (ex: 10 chars): adequado para URLs curtas ou identificadores visiveis ao usuario, com menor entropia.
  • Apenas numeros: util para codigos de verificacao ou PINs.
  • Apenas maiusculas: mais legivel em interfaces graficas onde a capitalizacao pode ser confusa.
  • Base32 sem ambiguidades: exclui letras parecidas (I, L, O) para melhorar digitacao manual.

Nossa ferramenta calcula automaticamente a entropia e probabilidade de colisao para qualquer combinacao de tamanho e alfabeto.

5. Quando Usar Nanoid

  • IDs de sessao e tokens curtos: quando o espaco de armazenamento e bandwidth importam.
  • Slugs de URL: IDs URL-safe sem precisar de encoding.
  • Codigos de verificacao: com alfabeto numerico e tamanho 6-8 para OTPs.
  • Identificadores de recursos em APIs REST: mais curtos que UUID nos endpoints.
  • Chaves de idempotencia: para garantir que operacoes nao sejam executadas duas vezes.

6. Perguntas Frequentes

Posso usar Nanoid em producao com tamanho menor que 21?

Sim, mas avalie a entropia necessaria. Para 10 chars com alfabeto de 64 chars, voce tem ~60 bits de entropia — suficiente para a maioria dos casos internos, mas abaixo do recomendado para identificadores publicos de longa vida.

O Nanoid e compativel com bancos de dados relacionais?

Sim. Como e uma string, pode ser armazenado como VARCHAR ou TEXT em qualquer banco. Para melhor performance, use VARCHAR(21) com indice para o tamanho padrao.

Qual a diferenca entre Nanoid e Math.random()?

Math.random() NAO e criptograficamente seguro e nao deve ser usado para gerar IDs. Nanoid usa CSPRNG nativo, garantindo que os IDs nao possam ser previstas por um atacante que conhece IDs anteriores.