Gerador de Argon2
Gere um hash de senha Argon2id com um salt aleatório de 16 bytes e escolha a memória, o número de iterações, o paralelismo e o comprimento do hash. A memória é limitada a 64 MiB e as iterações a 4; os valores padrão seguem a referência da OWASP de 19 MiB e 2 passagens. A ferramenta retorna a string PHC padrão iniciada por $argon2id$v=19$, que PHP, libsodium e as bibliotecas argon2 verificam. A senha nunca é exibida.
Perguntas frequentes
O que é Argon2id?
Argon2 venceu a Password Hashing Competition em 2015 e está especificado na RFC 9106. Argon2id é a variante híbrida que resiste a ataques de canal lateral e ataques com GPU. É a variante recomendada pela OWASP e pela RFC para o armazenamento de senhas.
O que significam as configurações de memória, iterações e paralelismo?
A memória define quantos MiB cada hash ocupa, as iterações definem quantas passagens são executadas sobre essa memória, e o paralelismo define o número de faixas. Mais memória e iterações tornam cada tentativa mais cara para os atacantes. Aqui, a memória varia de 1 a 64 MiB, as iterações de 1 a 4 e o paralelismo de 1 a 4.
Quais configurações devo usar?
Os valores padrão são 19 MiB, 2 iterações e 1 faixa, o mínimo da OWASP para Argon2id. O padrão de PHP é 64 MiB com 4 iterações, que você também pode reproduzir aqui. Em produção, use o máximo de memória que seus servidores puderem disponibilizar por login.
Por que a memória e as iterações têm limites?
Cada hash aloca de fato a memória solicitada e executa todas as passagens em um servidor compartilhado. Limitar a memória a 64 MiB e as iterações a 4 mantém cada solicitação abaixo de uma fração de segundo, ainda cobrindo configurações comuns de produção.
O que a string de saída contém?
Um resultado como $argon2id$v=19$m=19456,t=2,p=1$ seguido pelo salt e pelo hash lista a variante, a versão, a memória em KiB, as iterações e as faixas. O salt e o hash estão em Base64 sem preenchimento. Armazene a string inteira, pois a verificação lê todos os parâmetros dela.
Por que o hash muda a cada vez?
Cada solicitação usa um novo salt aleatório de 16 bytes, então a mesma senha produz uma string diferente a cada vez. Todas são verificadas corretamente com a senha certa.
Posso escolher o comprimento do hash?
Sim, de 16 a 64 bytes, com 32 bytes como padrão. Tags mais longas não dificultam as tentativas, então 32 bytes são suficientes para armazenar senhas.
Quais sistemas aceitam esses hashes?
PHP password_verify, crypto_pwhash_str_verify da libsodium, o pacote argon2 para Node.js, argon2-cffi para Python e Spring Security leem todos o formato de string PHC. O Argon2 Verifier deste site também os verifica.
Minha senha é armazenada ou retornada?
Não. A senha é usada apenas na memória para calcular o hash e é removida da resposta. Ela nunca é registrada nem salva.
Posso gerar hashes Argon2i ou Argon2d?
Não. A ferramenta produz apenas Argon2id, pois é a variante recomendada para senhas. O Argon2 Verifier ainda aceita hashes Argon2i e Argon2d.