Gerador de String Aleatória
Gere strings aleatórias customizáveis — defina alfabeto (A-Z, a-z, 0-9, hex, base32, base58, símbolos), tamanho e quantidade. Útil para tokens, IDs e fixtures. Tudo no navegador.
Quando você quer só uma string aleatória
Uma string aleatória é a primitiva genérica que mora abaixo de identificadores mais estruturados como UUIDs, ULIDs e nanoids. Esses têm forma fixa, alfabeto definido e uma especificação contra a qual validar. Uma string aleatória pura é só N caracteres tirados de um charset à sua escolha, sem schema e sem opinião sobre como é codificada. Por isso ela é a ferramenta certa quando a estrutura é irrelevante ou quando um sistema externo já especifica o formato.
Casos de uso típicos incluem chaves de API geradas manualmente, identificadores de sessão temporários, slugs aleatórios para URLs não-adivinháveis, geração simples de senha sem regras de complexidade, salts criptográficos para hashes, IDs anônimos, códigos de convite e seeds para fixtures de teste. O alfabeto e o comprimento certos dependem do caso, não de uma convenção fixa.
Comprimento e entropia
A força de uma string aleatória se mede em bits de entropia, dado pela fórmula log2(tamanho_do_charset) × comprimento. Algumas referências:
- 10 chars alfanuméricos (62 símbolos) — cerca de 59,5 bits
- 16 chars alfanuméricos — cerca de 95,3 bits
- 16 chars em hex (16 símbolos) — exatos 64 bits
- 22 chars em base64url — cerca de 132 bits, o equivalente a um UUID codificado em base64
- 32 chars em hex — 128 bits, a força de uma saída de MD5
O NIST SP 800-63B recomenda pelo menos 64 bits para tokens de sessão de baixa sensibilidade e 128 bits ou mais para tokens críticos como links de reset de senha, chaves de API com escopo administrativo e nonces de assinatura. Abaixo de 64 bits, força bruta começa a ficar viável para um atacante motivado.
Math.random não é aleatório o suficiente
Nunca use Math.random() ou equivalentes em outras linguagens para tokens que protejam algo. O PRNG padrão da maioria dos runtimes é rápido, mas previsível: com amostras suficientes, um atacante recupera o estado interno e prevê todos os valores futuros. A primitiva correta é um gerador pseudoaleatório criptograficamente seguro (CSPRNG), exposto em toda plataforma moderna:
// Browser
const bytes = new Uint8Array(16);
crypto.getRandomValues(bytes);
// Node.js
const { randomBytes } = require('crypto');
randomBytes(16);
// Python
import secrets
secrets.token_urlsafe(16)
Todos puxam do pool de entropia do sistema operacional (/dev/urandom no Linux/macOS, BCryptGenRandom no Windows). Esta ferramenta usa crypto.getRandomValues internamente, então a saída é segura para uso sensível.
Escolhendo o alfabeto certo
O charset é mais que estética. Cada alfabeto tem trade-offs:
- Alfanumérico (62) — saída mais densa URL-safe sem símbolos. Padrão para a maioria dos casos.
- Hex (16) — case-insensitive e trivialmente URL-safe; a saída é o dobro do tamanho para a mesma entropia.
- Base64 — 64 símbolos incluindo
+,/e o padding=. Compacta, mas quebra dentro de URLs sem encoding. Prefira base64url (-e_no lugar). - Base32 (RFC 4648) — 32 letras e dígitos sem ambiguidade, case-insensitive, projetada para transcrição humana.
- Base58 (Bitcoin) — remove os visualmente ambíguos
0,O,l,Ipara códigos lidos em voz alta. - Alfanumérico + símbolos — mais forte para senhas; pode precisar de quoting em URLs e shells.
Se um código vai ser digitado por uma pessoa, exclua caracteres ambíguos (0/O, 1/l/I) e aumente o comprimento para repor a entropia perdida.
FAQ
Qual o tamanho ideal?
Para tokens de segurança, mire em pelo menos 16 caracteres alfanuméricos (~95 bits) ou 22 caracteres em base64url (~132 bits). Para identificadores não sensíveis, 8–12 normalmente bastam.
Posso usar como senha?
Sim — desde que gerada por CSPRNG (esta ferramenta faz isso) e com comprimento suficiente. 16+ caracteres alfanuméricos é uma senha forte gerada por máquina; para contas que serão digitadas por humanos, prefira uma passphrase mais fácil de lembrar.
Os símbolos quebram minha URL?
Alguns sim. Base64 padrão (+, /, =) precisa de URL-encoding; os alfabetos alfanumérico e hex são sempre URL-safe. Se a string vai viajar em URL, escolha esses ou use base64url.
Ferramentas Relacionadas
Gerador de String Segura Personalizável
Gera strings aleatórias com classes específicas: alfa minúsculas, maiúsculas, dígitos, símbolos. Útil para senhas, tokens e códigos. Usa crypto.getRandomValues.
Gerador de Cor Aleatória
Gere cores aleatórias nos formatos HEX, RGB e HSL com um clique. Ótimo para inspiração de design, paletas, testes de interface e quebrar o bloqueio criativo.
Gerador de Hora Aleatória
Sorteia horários (HH:MM:SS) dentro de uma janela informada. Útil para preencher escalas e testes.
Gerador de String Base91 Aleatória
Gera uma string aleatória codificada em Base91 (mais compacta que Base64). Útil para chaves curtas.
Gerador de Data Aleatória
Gera datas aleatórias dentro de um intervalo definido — útil para popular bancos de teste, fixtures de aplicação ou planilhas mock.
Gerador de Chave Pix Aleatória (multi-tipo)
Gera chaves Pix aleatórias dos 4 tipos: CPF, e-mail, telefone celular ou EVP (UUID v4). Para popular bases de teste com diversidade.