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 gerada aleatoriamente usada para identificar algo, de modo que possa ser distinguido de todos os outros itens. O desenvolvedor de software Andrey Sitnik criou o formato em 2017 como uma alternativa menor ao UUID (identificador universalmente exclusivo), um identificador de 36 caracteres amplamente usado na computação. Um Nano ID padrão tem 21 caracteres, em comparação com os 36 de um UUID, uma redução de cerca de 42%.

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.

Insira um comprimento, escolha um conjunto de caracteres e pressione "Gerar" para criar um ID. Pressione "Copiar" para copiá-lo ou "Redefinir" para voltar ao comprimento 21 e ao conjunto alfanumérico. Um novo ID também aparece automaticamente sempre que o comprimento ou o conjunto de caracteres é alterado. Abaixo dos botões, a ferramenta exibe cada caractere do ID como um bloco colorido: azul para uma letra maiúscula, verde para uma letra minúscula, laranja para um dígito e cinza para pontuação.

Se o comprimento não for um número inteiro entre 1 e 100, a ferramenta exibirá a mensagem "O comprimento deve ser um número inteiro entre 1 e 100" e não produzirá nenhum ID.

Conjuntos de caracteres disponíveis

A ferramenta oferece sete conjuntos de caracteres fixos. Ela não aceita um alfabeto personalizado digitado pelo usuário. O conjunto "Com símbolos" adiciona estas 26 marcas de pontuação às alfanuméricas: ! @ # $ % ^ & * ( ) _ + - = [ ] { } | ; : , . < > ?.

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
Com símbolosA-Z, a-z, 0–9 e 26 marcas de pontuação88

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 é criado escolhendo aleatoriamente um número fixo de caracteres de um alfabeto, um por vez, usando um gerador de números aleatórios criptograficamente seguro. Esse gerador é projetado para que sua saída não possa ser prevista antecipadamente.

1id = random(alphabet, size)
2

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

Exemplo prático

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

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

Dúvidas 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 "Com 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. Sitnik, Andrey. "Nano ID." GitHub, https://github.com/ai/nanoid.
  2. "Universally unique identifier." Wikipédia, Fundação Wikimedia, https://en.wikipedia.org/wiki/Universally_unique_identifier.
  3. "ULID Spec." GitHub, https://github.com/ulid/spec.