Hashes/Cripto
Argon2 Hash + Verify
Faça hash de senhas com Argon2 (vencedor da Password Hashing Competition, RFC 9106) — variantes d/i/id, com verificação em relação a um hash existente.
Argon2 is the Password Hashing Competition winner and the algorithm recommended in RFC 9106 for hashing passwords. Unlike bcrypt, it deliberately demands a lot of memory, not just CPU time, which makes attacks on specialized hardware (GPUs, ASICs) much harder.
How to use it
- Hash: enter a password, pick a variant (Argon2d, Argon2i, or Argon2id), and set the parameters (memory, iterations, parallelism) to get a hash.
- Verify: paste a password and an existing Argon2 hash to check whether they match, without hashing manually yourself.
- Argon2id is the recommended default for most applications — it combines the strengths of Argon2i and Argon2d.
Common uses
- Checking that a backend generates correct Argon2 hashes with the expected parameters before a release.
- Tuning memory and iteration parameters to fit within a server's response-time budget (typically 250-500ms).
- Comparing Argon2 against bcrypt or PBKDF2 when choosing an algorithm for a new project.
Things to keep in mind
The memory parameter is Argon2's main defense: the more memory hashing requires, the more expensive it is for an attacker to parallelize an attack on a GPU with limited fast memory per chip.
Argon2id is recommended for most cases: Argon2i resists side-channel attacks better, Argon2d resists GPU attacks better, and id combines both approaches.
Perguntas frequentes
Por que o Argon2 é recomendado em vez de hashes antigos como MD5 ou SHA-256 para senhas?
O Argon2 é deliberadamente lento e exige muita memória, tornando o brute-force e a quebra via GPU/ASIC muito mais caros, ao contrário de hashes rápidos de propósito geral como MD5 ou SHA-256, inadequados para armazenar senhas.
O que os parâmetros de memória, iterações e paralelismo controlam?
O custo de memória define quanta RAM cada tentativa de hash exige, as iterações controlam quantas passagens são feitas, e o paralelismo define o número de threads — aumentar qualquer um deles eleva o custo de quebra às custas de um hash mais lento.
Qual variante do Argon2 devo usar — d, i ou id?
Argon2id é a recomendação padrão para hash de senhas, pois combina a resistência do Argon2i a ataques de canal lateral com a resistência do Argon2d à quebra por GPU.
De onde veio o Argon2 como padrão?
O Argon2 venceu a Password Hashing Competition de 2015 — uma competição aberta de criptógrafos cujo objetivo era encontrar o melhor algoritmo para hash de senhas. Desde então, a OWASP o recomenda como escolha prioritária em relação ao bcrypt.
O parâmetro de paralelismo apenas acelera o hash?
Não, o mesmo parâmetro também acelera a força bruta para um atacante com hardware multi-core, então o paralelismo deve ser ajustado conforme o número real de núcleos do servidor, e não aumentado sem necessidade.