Pular para o conteúdo

Gerador de Nano ID Gratuito - IDs Únicos Seguros e Amigáveis para URL Online

Gere Nano IDs seguros instantaneamente! Ferramenta online gratuita cria identificadores únicos compactos e amigáveis para URL, 42% mais curtos que UUID. Perfeito para bancos de dados, APIs, tokens e sistemas.

O comprimento do Nano ID gerado (1-100 caracteres)

Selecione o conjunto de caracteres para seu Nano ID

Nano ID Gerado

Insira um valor para ver os resultados

Visualização

Calculadora de carregamento...
📚

Documentação

Um gerador de Nano ID cria uma sequência curta e aleatória de caracteres chamada Nano ID. Os Nano IDs funcionam como identificadores exclusivos para itens como registros de banco de dados, URLs e tokens de API, e é extremamente improvável que dois IDs gerados sejam iguais.

O que é um Nano ID?

Um Nano ID é uma sequência de caracteres gerada aleatoriamente, usada para rotular algo de modo que possa ser distinguido de qualquer outra coisa. O desenvolvedor Andrey Sitnik escreveu a biblioteca de código aberto Nano ID, com direitos autorais de 2017, como alternativa mais curta ao UUID (Universally Unique Identifier, identificador universalmente único), um identificador de 36 caracteres amplamente usado em computação. A biblioteca usa um alfabeto maior que o do UUID, de modo que seu ID padrão tem 21 caracteres em vez de 36, cerca de 42% mais curto. O alfabeto padrão da própria biblioteca é o conjunto seguro para URLs (A-Za-z0-9_-); esta ferramenta usa, por padrão, o conjunto alfanumérico.

Como gerar um Nano ID com esta ferramenta

O gerador desta página cria um Nano ID a partir de duas configurações.

  1. Comprimento: um número inteiro de 1 a 100. O padrão é 21.
  2. Conjunto de caracteres: o grupo de caracteres usado para criar o ID. O padrão é alfanumérico.

Informe um comprimento, escolha um conjunto de caracteres e pressione "Gerar" para criar um ID. Pressione "Copiar" para copiá-lo. Um novo ID também aparece automaticamente sempre que o comprimento ou o conjunto de caracteres muda.

Conjuntos de caracteres disponíveis

A ferramenta oferece sete conjuntos de caracteres fixos. Ela não aceita um alfabeto personalizado digitado pelo usuário.

Conjunto de caracteresCaracteres usadosTamanho do alfabeto
Alfanumérico (padrão)A-Z, a-z, 0-962
Seguro para URLsA-Z, a-z, 0-9, -, _64
Numérico0-910
AlfabéticoA-Z, a-z52
Minúsculasa-z26
MaiúsculasA-Z26
SímbolosA-Z, a-z, 0-9 e pontuação comum88

O conjunto alfanumérico é selecionado por padrão. Ele exclui o hífen e o sublinhado usados no conjunto seguro para URLs, embora apenas letras e dígitos já sejam seguros para inserção direta em uma URL.

Fórmula do Nano ID

Um Nano ID é montado escolhendo-se, ao acaso, um número fixo de caracteres de um alfabeto, um de cada vez, com um gerador de números aleatórios criptograficamente seguro. Esse é um gerador projetado para que sua saída não possa ser prevista com antecedência. No navegador, a biblioteca usada por esta ferramenta obtém seus bytes aleatórios do método Web Crypto crypto.getRandomValues(), que retorna valores aleatórios criptograficamente fortes.

1id = random(alphabet, size)
2

Com as configurações padrão, alphabet tem 62 caracteres e size é 21.

Exemplo

Usando o alfabeto alfanumérico padrão e um comprimento de 21, um possível ID gerado é:

1K7pQ2mZxT9vY4nR8jH3wL
2

Cada caractere é escolhido independentemente entre as 62 letras e dígitos, portanto executar o gerador duas vezes quase nunca produzirá a mesma sequência.

Como calcular a probabilidade de colisão

Como um Nano ID é escolhido aleatoriamente, é possível, embora muito improvável, que dois IDs gerados sejam iguais. Isso é chamado de colisão. A probabilidade de ocorrer pelo menos uma colisão após a geração de k IDs segue a mesma matemática do "problema do aniversário":

1P(collision) ≈ 1 - e^(-k² / (2n))
2

Aqui, n é o número de IDs possíveis: o tamanho do alfabeto elevado à potência do comprimento do ID, ou n = alphabet_size^length.

Exemplo prático

Para a configuração padrão, com um alfabeto de 62 caracteres e um comprimento de 21:

1n = 62^21 ≈ 4.4 × 10^37 possible IDs
2

Resolver a fórmula para uma probabilidade de colisão de 1% resulta em:

1k ≈ 9.4 × 10^17 IDs
2

Isso significa que aproximadamente 940 quatrilhões de IDs precisam ser gerados antes que haja sequer uma chance de 1% de dois deles serem iguais. Gerando um milhão de IDs por segundo, atingir essa quantidade levaria cerca de 29.700 anos.

A mudança para o alfabeto seguro para URLs de 64 caracteres aumenta ligeiramente a quantidade, para cerca de 1,3 × 10^18 IDs com o mesmo risco de 1%, porque o alfabeto maior deixa mais IDs possíveis para escolher.

Nano ID em comparação com outros identificadores

Um ULID é escrito como uma sequência de 26 caracteres que se ordena pela hora de criação, e a forma textual de um KSUID tem sempre 27 caracteres e se ordena pelo seu carimbo de data e hora.

TipoComprimentoObservações
Nano ID21 caracteres, ajustávelAleatório, compacto e não ordenável por tempo
UUID36 caracteresFormato padrão, amplamente compatível e contém hífens
ULID26 caracteresOrdenável pelo horário de criação
KSUID27 caracteresOrdenável pelo horário de criação e inclui uma marca temporal
Inteiro autoincrementalVariaSimples e sequencial, mas previsível e difícil de coordenar entre bancos de dados separados

Perguntas frequentes

Qual é o comprimento e o conjunto de caracteres padrão de um Nano ID?

O padrão é 21 caracteres do conjunto de caracteres alfanumérico: A-Z, a-z, 0-9, que tem 62 caracteres ao todo.

Esta ferramenta aceita um alfabeto personalizado?

Não. Ela oferece sete conjuntos de caracteres fixos: alfanumérico, seguro para URLs, numérico, alfabético, minúsculas, maiúsculas e símbolos.

Qual é a diferença entre um Nano ID e um UUID?

Um Nano ID é mais curto. O padrão é de 21 caracteres, contra 36 caracteres de um UUID, cerca de 42% mais curto. Ambos são gerados aleatoriamente e não são sequenciais.

Um Nano ID pode ser ordenado pelo horário em que foi criado?

Não. Os Nano IDs são totalmente aleatórios, portanto não contêm informações sobre quando foram gerados. Formatos como ULID ou KSUID são criados para serem ordenáveis por tempo.

É seguro usar um Nano ID como chave primária de banco de dados?

Sim. Ele deve ser armazenado em uma coluna de texto ou string, e não em uma coluna numérica, com um índice exclusivo para consultas rápidas.

Quantos Nano IDs possíveis existem?

Isso depende do comprimento e do conjunto de caracteres escolhidos. Com o alfabeto padrão de 62 caracteres e um comprimento de 21, existem 62^21, aproximadamente 4,4 × 10^37, IDs possíveis.

Referências

  1. Andrey Sitnik. Nano ID license file. LICENSE de ai/nanoid no GitHub — licença MIT, "Copyright 2017 Andrey Sitnik".
  2. Andrey Sitnik. Nano ID README. ai/nanoid no GitHub — alfabeto maior que o do UUID (A-Za-z0-9_-), "ID size was reduced from 36 to 21 symbols"; usa a API Web Crypto nos navegadores.
  3. MDN Web Docs. Crypto: getRandomValues() method. MDN, Crypto.getRandomValues() — o método retorna valores aleatórios criptograficamente fortes.
  4. ULID project. Universally Unique Lexicographically Sortable Identifier. ulid/spec no GitHub — por definição, uma sequência de 26 caracteres, em oposição ao UUID de 36 caracteres; ordenável lexicograficamente.
  5. Segment. KSUID. segmentio/ksuid no GitHub — a representação textual tem sempre 27 caracteres e se ordena pelo carimbo de data e hora.