Gerador de NanoID

Gere valores NanoID online: 21 caracteres seguros para URL por padrão, cerca de 126 bits de aleatoriedade, com comprimento e alfabeto personalizáveis.

Formato
IDs gerados
Pronto. Gere valores NanoID diretamente no seu browser.

Como este ID é estruturado

Estrutura
Por padrão, 21 caracteres seguros para URL compostos por A-Z, a-z, 0-9, sublinhado (_) e hífen (-).
Entropia
Cerca de 126 bits com o alfabeto padrão de 64 caracteres e comprimento de 21 caracteres.
Tempo
Não possui carimbo de data/hora (timestamp); os valores de NanoID são opacos, a menos que atribua significado a um alfabeto personalizado.
Risco de colisão
O risco de colisão varia de acordo com o comprimento e o alfabeto escolhidos. O padrão oferece o mesmo nível de segurança prática que o UUID v4.
Exemplo
inOnY-7uUMKw8wsAn9ZHh

Os seus IDs são gerados localmente com alta aleatoriedade no navegador. Nada é enviado para o BroBroGo.

Perguntas frequentes

Porquê usar o NanoID?

O NanoID é mais curto que um UUID, seguro para URLs por padrão e mantém uma alta aleatoriedade ao utilizar o comprimento e o alfabeto padrão.

Posso alterar o alfabeto?

Sim. A página do NanoID mantém os controlos de comprimento e alfabeto. Alfabetos mais pequenos ou comprimentos mais curtos aumentam o risco de colisão.

O que é o Nano ID e como este gerador funciona?

O Nano ID é um formato de identificador único, compacto e seguro, desenvolvido para substituir UUIDs e ULIDs em cenários onde o tamanho importa. Enquanto um UUID tem sempre 36 caracteres e um ULID 26, o Nano ID usa 21 caracteres por omissão — uma redução significativa que mantém uma resistência a colisões comparável. O gerador desta página implementa exactamente esse formato, permitindo-lhe controlar o comprimento entre 2 e 36 caracteres e o conjunto de caracteres permitidos (alfabeto) através de um campo de texto editável. Por defeito, o alfabeto contém apenas caracteres URL‑safe (letras minúsculas, maiúsculas e dígitos, excepto os ambíguos como l, I, 1, O, 0), o que garante que os IDs gerados podem ser usados directamente em URLs, parâmetros de consulta e cabeçalhos HTTP sem necessidade de codificação adicional.

O funcionamento do gerador é directo: selecciona o formato "Nano ID" no menu, define o número de IDs (entre 1 e 100), ajusta o comprimento com o cursor deslizante e, se necessário, altera o alfabeto. Qualquer alteração — seja no comprimento, no alfabeto, no número de IDs ou no formato — desencadeia uma regeneração imediata. Os resultados aparecem numa lista, cada ID é clicável para cópia individual, e o botão "Copiar tudo" permite copiar todos os IDs de uma só vez. Após cada operação, o estado é actualizado para "Gerado." e, após copiar tudo, para "Copiado tudo!".

Parâmetros ajustáveis: comprimento, alfabeto e contagem

O gerador expõe três parâmetros principais, cada um com regras específicas:

  • Comprimento (Length): um cursor deslizante com valores inteiros de 2 a 36. O valor predefinido é 21, que corresponde ao comprimento original recomendado pelos autores do Nano ID. A alteração do comprimento tem impacto directo na probabilidade de colisão: quanto maior o comprimento, menor a probabilidade de dois IDs serem iguais, para um dado alfabeto. Por exemplo, com o alfabeto URL‑safe predefinido (64 caracteres), um comprimento de 21 gera cerca de 64^21 ≈ 2,3×10^33 combinações possíveis; com comprimento 10, o número cai para 64^10 ≈ 1,2×10^18 — ainda enorme para a maioria dos usos, mas inferior.

  • Alfabeto (Alphabet): um campo de texto editável onde pode escrever os caracteres que deseja permitir. O campo aceita qualquer carácter Unicode, mas o gerador exige pelo menos 2 caracteres diferentes. Se introduzir apenas um carácter (por exemplo, repetido ou único), os resultados são limpos, a contagem de IDs passa a 0 e o botão "Copiar tudo" é desactivado. O erro exibido é "O alfabeto precisa de pelo menos 2 caracteres diferentes." (em português: "Alphabet needs at least 2 different characters."). Isto evita a geração de IDs que seriam todos iguais ou inválidos. Pode, por exemplo, usar apenas dígitos ("0123456789") para criar IDs numéricos, ou apenas letras maiúsculas ("ABCDEFGHIJKLMNOPQRSTUVWXYZ") para tokens que precisam de ser facilmente legíveis por humanos.

  • Contagem (Count): um valor numérico entre 1 e 100, inclusive. O gerador produz exactamente esse número de IDs únicos. Se o alfabeto e o comprimento forem tais que o número de combinações possíveis seja inferior ao valor pedido, o gerador não consegue produzir IDs exclusivos e, na prática, o resultado será uma lista de IDs que podem incluir repetições (embora o gerador use aleatoriedade forte e não garanta unicidade absoluta quando o espaço de combinações é pequeno). Por exemplo, alfabeto de 2 caracteres e comprimento 2 só permite 4 combinações: se pedir 5 IDs, o gerador terá de repetir inevitavelmente.

Regras e casos extremos

O gerador segue regras precisas para evitar estados inválidos. Além do caso do alfabeto com um único carácter, outras situações relevantes:

  • Alteração de qualquer parâmetro regenera automaticamente. Não é necessário premir um botão de "gerar". Isto significa que, se estiver a editar o alfabeto carácter a carácter, cada inserção ou remoção desencadeia uma nova geração. Em alfabetos grandes, o desempenho é imediato porque a geração é feita localmente no browser.

  • O comprimento mínimo é 2. Isto impede a criação de IDs de 1 carácter, que seriam quase sempre previsíveis. Comprimento 2, com alfabeto de 64 caracteres, já oferece 4096 combinações — suficiente para pequenas demonstrações, mas não para produção.

  • O comprimento máximo é 36. Este valor foi escolhido para manter a usabilidade: IDs com mais de 36 caracteres tornam-se difíceis de copiar ou armazenar. O Nano ID original permite comprimentos superiores, mas o gerador limita-se a este intervalo.

  • Se o alfabeto for alterado para conter apenas caracteres que não sejam URL‑safe (por exemplo, espaços ou pontuação), o gerador não os filtra. A responsabilidade de usar um alfabeto seguro para a aplicação final é do utilizador. O campo apenas verifica se há pelo menos dois caracteres diferentes.

  • O estado "Pronto." aparece quando a página carrega ou após uma limpeza. "Gerado." surge após cada regeneração bem-sucedida. "Copiado tudo!" é exibido quando o botão de cópia em massa é accionado. Se ocorrer um erro (alfabeto inválido), a mensagem de erro substitui o estado.

Segurança e aleatoriedade local

Toda a geração de IDs ocorre no browser do utilizador, utilizando a API crypto.getRandomValues(). Este método fornece números aleatórios criptograficamente seguros, adequados para aplicações que exigem imprevisibilidade, como tokens de sessão ou chaves de API. Nenhum dado — nem os parâmetros, nem os IDs gerados — é enviado para o servidor do BroBroGo. Isto significa que o gerador funciona completamente offline, sem necessidade de ligação à Internet depois de a página estar carregada.

A aleatoriedade local elimina os riscos de exposição de dados a terceiros durante a geração, ao contrário de serviços online que enviam pedidos a servidores para obter números aleatórios. Além disso, o uso de crypto.getRandomValues() garante que o gerador não depende de funções pseudo‑aleatórias previsíveis como Math.random(). Para o utilizador final, isto traduz-se em IDs que são praticamente impossíveis de adivinhar, mesmo conhecendo o alfabeto e o comprimento.

Quando e porquê usar Nano ID

O Nano ID é particularmente útil em cenários onde o espaço em disco ou na base de dados é escasso, ou onde a transmissão de dados deve ser eficiente. Exemplos concretos:

  • Web APIs: identificadores de recursos (por exemplo, api.exemplo.com/items/Bk3N8fqR2a). Comprimento 21 é mais curto do que UUID (36) e ainda assim resistente a colisões.
  • Códigos QR: quanto menos caracteres, mais pequeno o código e mais rápido o scan.
  • Chaves primárias em bases de dados: usar UUIDs como chave primária pode degradar o desempenho de índices. Nano ID de 8 a 12 caracteres (alfabeto alfanumérico) oferece um compromisso aceitável.
  • Tokens de verificação de email: curtos e URL‑safe, sem necessidade de codificação.
  • Sistemas de alta concorrência: onde o overhead de gerar UUIDs (com hífenes) é indesejável.

A possibilidade de ajustar o alfabeto permite criar IDs só com dígitos (para sistemas que esperam números), só com minúsculas (para facilitar a digitação manual) ou só com caracteres seguros para URLs (para evitar problemas de codificação). O utilizador deve, no entanto, ter em conta a relação entre comprimento, tamanho do alfabeto e probabilidade de colisão. Uma fórmula aproximada é: número de IDs possíveis = |alfabeto|^comprimento. Para uma probabilidade de colisão inferior a 1 em 10^12, recomenda-se que este número seja pelo menos 10^18. Por exemplo, alfabeto de 64 caracteres e comprimento 12 dá 64^12 ≈ 4,7×10^21, seguro para a maioria dos cenários.

Perguntas frequentes (FAQ)

Qual é o comprimento predefinido do Nano ID neste gerador?
O comprimento predefinido é 21 caracteres, que corresponde ao valor original do formato Nano ID. Pode ajustá-lo entre 2 e 36 usando o cursor.

Posso usar apenas dígitos numéricos no alfabeto?
Sim. Basta apagar o conteúdo do campo "Alfabeto" e escrever "0123456789" (sem espaços). O gerador aceitará esse alfabeto e produzirá IDs compostos exclusivamente por dígitos. Lembre-se de que o comprimento mínimo é 2 caracteres e que o alfabeto precisa de ter pelo menos dois caracteres diferentes.

O que acontece se reduzir o alfabeto a um único carácter?
O gerador detecta que o alfabeto tem menos de dois caracteres diferentes, limpa a lista de resultados, define a contagem para 0 e desactiva o botão "Copiar tudo". Aparece a mensagem de erro: "Alphabet needs at least 2 different characters." Para recuperar, volte a introduzir pelo menos dois caracteres distintos.

Como é garantida a aleatoriedade dos IDs?
O gerador utiliza a função crypto.getRandomValues() do browser, que fornece números aleatórios criptograficamente seguros. Isto significa que os IDs são imprevisíveis e adequados para fins de segurança, como tokens de sessão.

Posso gerar mais de 100 IDs de uma só vez?
Não. O limite máximo é 100 IDs por geração. Se precisar de mais, pode clicar no botão de geração de novo (ou alterar ligeiramente um parâmetro) para obter outro lote de até 100 IDs.

Este gerador requer ligação à Internet para funcionar?
Sim, para carregar a página inicialmente. Uma vez carregada, a geração é feita inteiramente no browser, sem comunicação com servidores. Pode continuar a gerar IDs mesmo offline, desde que a página não seja recarregada.