Sobre esta ferramenta
Chaves de criptografia, segredos de API e tokens bearer precisam, no fundo, da mesma coisa: uma sequência de bytes que ninguém conseguiria adivinhar. O `Math.random()` não foi feito para isso — é um PRNG rápido e previsível, pensado para animações e embaralhamentos, não para segurança. Esta ferramenta usa `crypto.getRandomValues()`, o gerador de números aleatórios criptograficamente seguro da Web Crypto API, então os bytes obtidos são adequados como material de chave real: chaves AES, segredos HMAC, tokens de sessão ou qualquer coisa que precise resistir a tentativas de adivinhação.
Escolha um comprimento em bits — 128 e 256 são os tamanhos comuns de chave AES, 512 e 1024 servem para segredos HMAC maiores ou tokens de alta entropia — depois escolha uma codificação. Hex é a mais universal (dois caracteres por byte, fácil de conferir visualmente), Base64 é compacta e amplamente suportada, e Base64URL substitui os caracteres `+`, `/` e `=` para que o resultado caiba com segurança em uma URL, nome de arquivo ou JWT sem necessidade de escape. A seção separada de chave de API abaixo gera um segredo no estilo Stripe — um prefixo curto, um sublinhado e uma string aleatória em Base64URL — o formato usado por inúmeras APIs SaaS para seus tokens bearer.
Tudo acontece no seu navegador: nenhuma chave ou token gerado aqui é enviado para lugar nenhum. Isso também significa que nada é registrado ou recuperável se você sair da página, então copie sua chave antes de sair.
Perguntas frequentes
Quantos bits eu preciso para uma chave AES?
O AES suporta chaves de 128, 192 ou 256 bits. O AES-256 (usando a saída hex ou base64 de 256 bits desta ferramenta) é a escolha moderna mais comum e é considerado seguro muito além de qualquer futuro previsível, mesmo contra ataques teóricos de computação quântica que reduziriam apenas aproximadamente pela metade sua força efetiva.
Base64url é o mesmo que o base64 normal?
Não, são parecidos mas não idênticos: o base64url substitui os caracteres `+` e `/` por `-` e `_` e geralmente omite o preenchimento `=` final, então a string resultante é segura para usar diretamente em uma URL ou nome de arquivo sem escape — caso contrário, os caracteres especiais do base64 normal precisariam de codificação percentual em uma URL.