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
Visualização
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.
- Comprimento: um número inteiro de 1 a 100. O padrão é 21.
- 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 caracteres | Caracteres usados | Tamanho do alfabeto |
|---|---|---|
| Alfanumérico (padrão) | A-Z, a-z, 0–9 | 62 |
| Seguro para URLs | A-Z, a-z, 0-9, -, _ | 64 |
| Numérico | 0–9 | 10 |
| Alfabético | A-Z, a-z | 52 |
| Minúsculas | a-z | 26 |
| Maiúsculas | A-Z | 26 |
| Com símbolos | A-Z, a-z, 0–9 e 26 marcas de pontuação | 88 |
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)
2Com 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
2Cada 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))
2Aqui, 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
2Resolver a fórmula para uma probabilidade de colisão de 1% resulta em:
1k ≈ 9.4 × 10^17 IDs
2Isso 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
| Tipo | Comprimento | Observações |
|---|---|---|
| Nano ID | 21 caracteres, ajustável | Aleatório, compacto e não ordenável por tempo |
| UUID | 36 caracteres | Formato padrão, amplamente compatível e contém hífens |
| ULID | 26 caracteres | Ordenável pelo horário de criação |
| KSUID | 27 caracteres | Ordenável pelo horário de criação e inclui uma marca temporal |
| Inteiro autoincremental | Varia | Simples 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
- Sitnik, Andrey. "Nano ID." GitHub, https://github.com/ai/nanoid.
- "Universally unique identifier." Wikipédia, Fundação Wikimedia, https://en.wikipedia.org/wiki/Universally_unique_identifier.
- "ULID Spec." GitHub, https://github.com/ulid/spec.