Toolonit
  1. Início
  2. Criptografia
  3. 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

Variante
Predefinições
Memória

m=19456 no hash (KiB)

Iterações
Paralelismo

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.

Tamanho do hash
Sal

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

  1. Digite a senha. O hash aparece enquanto você digita, com o tempo que levou no seu dispositivo.
  2. Escolha uma predefinição ou ajuste memória, iterações e paralelismo para combinar com o seu servidor.
  3. Copie a string PHC ou o hash e o sal brutos em hex.
  4. 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.

Ferramentas relacionadas