- Início
- Criptografia
- Argon2
Gerador e verificador de hash Argon2
Gere e verifique hashes de senha com Argon2id, o padrão moderno de hash de senhas.
Gerar hash de senha
Digite uma senha: o hash dela aparece aqui.
Parâmetros
m=19456 no hash (KiB)
Faixas de memória. Aqui elas rodam uma depois da outra; um servidor pode rodá-las em paralelo. Isso muda o hash, então use o mesmo valor do servidor.
16 bytes aleatórios novos para cada hash.
Verificar senha com um hash
Uma string PHC: $argon2id$, $argon2i$ ou $argon2d$. Os parâmetros são lidos dela.
Digite uma senha e um hash para verificá-los.
O Argon2 venceu a Password Hashing Competition e é padronizado na RFC 9106. Ele é lento e exigente em memória de propósito, o que encarece a adivinhação de senhas em GPUs. Esta página gera um hash Argon2 com os parâmetros que você escolher, como a string PHC que as bibliotecas de senha armazenam ($argon2id$v=19$m=…,t=…,p=…$sal$hash) e em hex bruto, e confere uma senha com uma string PHC existente. Tudo roda no seu navegador, então a senha nunca sai do seu dispositivo; é grátis e não exige cadastro.
Como gerar e verificar um hash Argon2
- Digite a senha. O hash aparece enquanto você digita, com o tempo que levou no seu dispositivo.
- Escolha uma predefinição ou ajuste memória, iterações e paralelismo para combinar com o seu servidor.
- Copie a string PHC ou o hash e o sal brutos em hex.
- Para conferir um hash armazenado, cole-o com a senha em Verificar senha com um hash: você vê Corresponde ou Não corresponde.
Recursos
- Argon2id (padrão), Argon2i e Argon2d, versão 19
- Predefinições: mínimo da OWASP (19 MiB, t=2, p=1), RFC 9106 com pouca memória (64 MiB, t=3, p=4) e Alta (256 MiB, t=3, p=4)
- Memória de 1 MiB a 1 GiB, iterações de 1 a 16, paralelismo de 1 a 16, tamanho do hash de 4 a 128 bytes
- Sal aleatório de 16 bytes ou o seu próprio em texto, hex ou Base64 (de 8 a 1024 bytes)
- A string PHC, além do hash e do sal brutos em hex, cada um com um botão Copiar
- Verifica strings $argon2id$, $argon2i$ e $argon2d$ (v=19 ou v=16), lendo os parâmetros do próprio hash
É privado?
Sim. O Argon2 roda no seu navegador com WebAssembly, em um worker em segundo plano, e o sal vem do gerador aleatório seguro do navegador. A senha nunca é enviada nem armazenada.
Perguntas frequentes
Argon2id, Argon2i ou Argon2d?
Use Argon2id. A RFC 9106 e a OWASP o recomendam para senhas: ele combina a resistência do Argon2i a ataques de canal lateral com a resistência do Argon2d à quebra por GPU. Escolha outra variante só para combinar com um sistema existente.
Que memória, iterações e paralelismo devo usar?
O mínimo da OWASP para Argon2id é 19 MiB, 2 iterações e paralelismo 1. A RFC 9106 sugere 64 MiB, 3 iterações e paralelismo 4 quando a memória é limitada. Mais memória é a proteção mais forte; aumente-a até que um hash leve o tempo que o seu servidor pode gastar em cada login.
Argon2 ou bcrypt?
Argon2id para um sistema novo. Os dois são lentos de propósito, mas o Argon2 também exige muita memória, o que encarece a quebra em GPUs, e não tem o limite de 72 bytes de senha. O bcrypt é mais antigo, tem suporte em quase todo lugar e ainda é uma escolha razoável onde o Argon2 não está disponível.
O que é a string PHC $argon2id$?
É a forma como a implementação de referência do Argon2 guarda um hash: variante, versão (v=19), memória em KiB (m), iterações (t), paralelismo (p) e, em seguida, o sal e o hash em Base64 sem padding. As strings geradas aqui são, caractere por caractere, as mesmas que a biblioteca de referência (libargon2) grava para as mesmas entradas, e o crypto_pwhash_str_verify da libsodium as aceita (Argon2id e Argon2i, com hash de 16 bytes ou mais).
Por que não posso usar mais de 1 GiB de memória?
O hash roda dentro da aba do navegador, onde a memória do WebAssembly é limitada: uma única alocação não chega a 2 GiB, e celulares muitas vezes recusam bem menos. Por isso esta página para em 1 GiB, e hashes que pedem mais (como a opção de 2 GiB da RFC 9106) não podem ser gerados nem verificados aqui.