Verificação de hash Argon2 | Compare uma senha com um hash codificado
Compare uma senha com um hash Argon2 codificado existente ($argon2id$...) e veja se coincidem. Todo o cálculo é feito no navegador; nada é enviado ao servidor.
Dicas para verificação de hash Argon2
- Cole diretamente o hash codificado (a string que começa com $argon2id$) gerado pela ferramenta Cálculo de hash Argon2.
- O hash codificado já contém a variante, o custo de memória, o número de iterações e o salt, então não é preciso informar esses parâmetros separadamente ao verificar.
- Se o formato do hash estiver incorreto (por exemplo, caracteres faltando ou quebras de linha indevidas ao copiar), uma mensagem de erro será exibida. Confira se copiou o texto completo corretamente.
- Se o resultado indicar que não coincidem, verifique se não há diferenças de maiúsculas/minúsculas ou espaços em branco extras antes ou depois da senha.
Perguntas frequentes
Curiosidade — Por que basta 'comparar hashes' para verificar uma senha
À primeira vista, a verificação de senha parece ser um processo de 'comparar diretamente a senha armazenada com a senha digitada', mas na prática funciona de um jeito bem diferente. O servidor (ou, como nesta ferramenta, o processamento feito no lado do cliente) aplica novamente à senha digitada o mesmo algoritmo e o mesmo salt usados no momento em que ela foi armazenada, e apenas compara se o resultado coincide com o hash já salvo. A senha original em si nunca é comparada diretamente — a vantagem desse método é que basta verificar se dois hashes são iguais.
Esse mecanismo funciona porque funções de hash como o Argon2 são 'determinísticas': com a mesma entrada, o mesmo salt e os mesmos parâmetros, o resultado será sempre idêntico. Como a string do hash codificado (no formato $argon2id$v=19$m=...$salt$hash) já contém embutidos o salt e todos os parâmetros usados no cálculo original, não é necessário informá-los novamente na verificação — o próprio hash já permite recalcular tudo com exatidão.
É justamente graças a essas duas propriedades — a 'unidirecionalidade' (não é possível reverter o hash para obter a senha original) e o 'determinismo' (mesma entrada gera sempre a mesma saída) — que os serviços conseguem verificar logins com segurança sem nunca armazenar a senha em texto simples do usuário. Mesmo que o banco de dados seja vazado, o atacante só terá acesso aos valores de hash, e com um algoritmo computacionalmente custoso como o Argon2, um ataque de força bruta para recuperar a senha original levaria um tempo extremamente longo.