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

O cálculo de hash gera um novo valor de hash a partir de uma senha, enquanto a verificação determina se uma senha corresponde a um hash já existente. O uso típico é gerar e armazenar o hash no cadastro, e usar apenas a verificação no momento do login.

Essa mensagem aparece quando o hash informado não está em um formato codificado válido, ou seja, não começa com $argon2id$, $argon2i$ ou $argon2d$. Verifique se nenhum caractere foi perdido ao copiar e se não há espaços ou quebras de linha extras antes ou depois do texto.

As causas mais comuns são diferenças entre maiúsculas e minúsculas, caracteres em largura diferente (por exemplo, largura total versus largura normal) ou espaços em branco extras antes ou depois da senha. Como qualquer diferença de um único caractere já impede a coincidência, revise cuidadosamente a string de origem que você copiou.

Não. Todo o conteúdo informado é processado localmente no navegador via WebAssembly, sem qualquer envio ou armazenamento no servidor.

Use nossa ferramenta complementar Calculadora de Hash Argon2, compatível com as três variantes: Argon2id, Argon2i e Argon2d.
ツールくん

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.