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 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.
- 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.
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 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 |
| Símbolos | A-Z, a-z, 0-9 e pontuação comum | 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 é 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)
2Com 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
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
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.
| 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 |
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
- Andrey Sitnik. Nano ID license file. LICENSE de ai/nanoid no GitHub — licença MIT, "Copyright 2017 Andrey Sitnik".
- 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. - MDN Web Docs. Crypto: getRandomValues() method. MDN, Crypto.getRandomValues() — o método retorna valores aleatórios criptograficamente fortes.
- 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.
- Segment. KSUID. segmentio/ksuid no GitHub — a representação textual tem sempre 27 caracteres e se ordena pelo carimbo de data e hora.