Como usar Gerador de string aleatória
Computadores são máquinas determinísticas: dado o mesmo estado inicial, executam exatamente as mesmas operações e produzem exatamente os mesmos resultados. Isso é uma virtude enorme para confiabilidade e debugging, mas um problema sério quando você precisa de aleatoriedade. A solução histórica foi o gerador de números pseudoaleatórios (PRNG): um algoritmo que, dado um número inicial chamado semente, produz uma sequência que parece aleatória mas é completamente determinística. O Gerador Linear Congruencial (LCG), formalizado por D. H. Lehmer em 1948, foi por décadas o padrão: pegar o número anterior, multiplicar por uma constante, adicionar outro valor e tirar o resto da divisão por um módulo. Simples, rápido, implementável em poucas linhas. O problema é que LCGs têm padrões previsíveis com saída suficiente — em 1993, o jogo online Netrek foi comprometido porque seu gerador pseudoaleatório de tokens de autenticação era um LCG com parâmetros conhecidos e fáceis de reverter.
A Web Crypto API, disponível em todos os browsers modernos, resolve o problema com `window.crypto.getRandomValues()` — uma função que solicita entropia real do sistema operacional. Essa entropia vem de fontes físicas de ruído: movimentos do mouse, timings de disco, interrupções de hardware, atividade de rede. O Linux acumula essa entropia num pool especial e a disponibiliza para processos. O `Math.random()` do JavaScript — apesar de usar algoritmos modernos como xorshift128+ no motor V8 — não é adequado para fins de segurança porque sua semente pode ser previsível dependendo da implementação e não é protegida contra análise. Para qualquer string destinada a autenticação, tokens de sessão, IDs únicos ou tokens CSRF, `getRandomValues()` é o padrão correto.
Na prática, strings aleatórias são necessárias em mais lugares do que a maioria dos desenvolvedores percebe. IDs de recursos em APIs REST precisam ser únicos e preferencialmente não incrementais — IDs sequenciais expõem o volume de dados e facilitam a enumeração por atacantes. Tokens de acesso de API precisam ser suficientemente longos para resistir a força bruta: uma string hexadecimal de 32 bytes tem 256 bits de entropia, que é hoje o padrão mínimo aceitável para segredos. Senhas temporárias para fluxos de redefinição de acesso. Nomes únicos de arquivos temporários para evitar condições de corrida. O paradoxo do aniversário tem implicações práticas aqui: para IDs de 8 caracteres alfanuméricos (62 símbolos possíveis), a probabilidade de colisão começa a ser razoável já com cerca de 218 mil IDs gerados. Para 16 caracteres, o número sobe para 14 bilhões. Esta ferramenta usa `getRandomValues()` e suporta comprimento, alfabeto e codificação configuráveis.
Uso
IDs de teste: 16 caracteres [a-zA-Z0-9]
Perguntas frequentes
Para que serve esta ferramenta?
Ela roda 100% no seu navegador: útil para validar, formatar ou converter dados no dia a dia de desenvolvimento.
Meus dados são enviados a algum servidor?
O processamento é feito localmente via JavaScript. Não armazenamos o conteúdo que você cola nas caixas de texto.
Posso usar em produção ou para dados reais?
Use por sua conta e risco. Para segredos (senhas, tokens), prefira ambientes controlados e políticas da sua empresa. E lembre sempre de revisar os conteúdos gerados. Nunca confie cegamente nas coisas que vê na internet.