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.