Esta ferramenta gera material de chave aleatório criptograficamente seguro. Diferente dos geradores existentes de strings e senhas (que usam Math.random() e não servem para segredos), esta ferramenta é guiada por entropia e respaldada por CSPRNG.
Entrada guiada por entropia. Você especifica uma entropia alvo em bits (padrão 256, passo 8) — a segurança desejada — e a ferramenta deriva o número de bytes (bytes = ceil(bits/8)) para você. Este é o modelo mental correto para chaves: um secret JWT HS256 precisa de 256 bits de entropia independentemente de quantos caracteres o representem. Não pense "quantos caracteres", pense "quanta segurança".
Dois ramos de saída:
Codificação de bytes (padrão — deixe Alfabeto Personalizado vazio). Gera ceil(entropyBits/8) bytes aleatórios com crypto.randomBytes() e renderiza o mesmo material em três codificações lado a lado — hex, base64, base64url — para que você copie a que seu consumidor espera. Cada byte contribui com 8 bits de entropia, então a entropia entregue sempre é igual à solicitada.
Alfabeto personalizado (preencha Alfabeto Personalizado). Amostra crypto.randomInt(tamanhoAlfabeto) por caractere — amostragem por rejeição interna do Node, sem viés de módulo, sem loop de rejeição manual. A entropia real é comprimento × log₂(tamanhoAlfabeto), podendo ser menor que a solicitada (ex. alfabeto de 32 símbolos × 10 caracteres = 50 bits, não 256); a ferramenta avisa em vermelho quando acontece, pois uma string curta com alfabeto personalizado pode ser bem mais fraca do que parece.
Por que três codificações lado a lado? Uma chave de 256 bits são 64 caracteres hex, ~44 base64, ou 43 base64url. Sistemas diferentes esperam formatos diferentes; mostrar os três permite escolher corretamente sem reexecutar.
Casos de uso: chaves AES-256, chaves HMAC, secrets de assinatura JWT, API keys, secrets de sessão, qualquer valor que um atacante não deva conseguir adivinhar. crypto.randomBytes() e crypto.randomInt() provêm do CSPRNG do SO — nunca Math.random().