UTILS.
100% no navegador
🛡️

Gerador e Verificador de Hash de Senha Argon2

Calcule um hash de senha Argon2id/i/d com memória, iterações e paralelismo configuráveis, ou verifique uma senha contra um hash codificado em PHC. Client-side.

As senhas são hasheadas 100% no seu navegador — nada é enviado.

— a saída aparece aqui —

Sobre esta ferramenta

O Gerador e Verificador de Hash de Senha Argon2 calcula e confere hashes Argon2 inteiramente no seu navegador. O Argon2 venceu a Password Hashing Competition de 2015 e é padronizado na RFC 9106; ao contrário do bcrypt, ele é memory-hard, ou seja, seu custo é dominado pelo uso de RAM, o que frustra plataformas de quebra por GPU e ASIC. O modo de geração retira 16 bytes aleatórios de sal do crypto.getRandomValues e executa a variante selecionada com seus parâmetros: t iterações (custo de tempo), m memória em KiB, p paralelismo (lanes), e o comprimento do hash de saída em bytes.

Três variantes são oferecidas. O Argon2id (o padrão e a escolha recomendada pela RFC) é um híbrido que resiste tanto a ataques de canal lateral quanto de troca tempo-memória; o Argon2i é otimizado contra vazamento por canal lateral; o Argon2d maximiza a resistência à quebra por GPU mas não é seguro contra canal lateral. O resultado é uma string PHC autodescritiva da forma $argon2id$v=19$m=65536,t=3,p=1$<sal base64>$<hash base64>, então cada parâmetro necessário para verificar viaja dentro do hash. Os padrões (t=3, m=65536 KiB = 64 MiB, p=1) seguem o segundo perfil recomendado da RFC 9106.

Como o trabalho roda como um build WebAssembly livre de eval sob a política de segurança estrita do navegador, a memória é alocada na página: valores muito altos de m consomem muita RAM e podem ser lentos em celulares, então a ferramenta avisa acima de 256 MiB. O modo de verificação analisa a variante, versão, m/t/p, sal e digest de um hash codificado, recalcula com a senha candidata, e informa se corresponde ou não. As senhas são hasheadas 100% no seu navegador e nada é enviado.

Perguntas frequentes

Qual variante do Argon2 devo usar?
O Argon2id é o padrão e a recomendação da RFC 9106 para hash de senhas — ele combina a resistência a canal lateral do Argon2i com a resistência à quebra por GPU do Argon2d. Use o Argon2i apenas se você precisar especificamente de acesso à memória independente dos dados, e o Argon2d apenas em cenários sem risco de canal lateral.
O que fazem as configurações de memória, iterações e paralelismo?
A memória (m, em KiB) é a RAM que o hash preenche — o principal fator de custo. As iterações (t) são quantas passagens são feitas sobre essa memória. O paralelismo (p) é o número de lanes calculadas de uma vez. m e t mais altos significam hashes mais fortes e mais lentos; os padrões são m=65536 (64 MiB), t=3, p=1.
Por que uma configuração de memória alta fica lenta ou sem resposta?
O Argon2 genuinamente aloca a memória solicitada no seu navegador, então um valor como 1 GiB (1048576 KiB) pode travar ou falhar em dispositivos com pouca RAM. A ferramenta avisa acima de 256 MiB. Reduza m se a geração travar; os parâmetros ficam armazenados no hash de qualquer forma.
O hash contém tudo o que é necessário para verificá-lo?
Sim. A saída codificada em PHC embute a variante, versão, parâmetros m/t/p, sal e digest, então a verificação precisa apenas da senha e daquela única string. Nada é enviado a lugar nenhum — tanto o hash quanto a verificação rodam localmente via WebAssembly.

Mais ferramentas