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

Common uses

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.

Artigo sobre esta ferramenta: Argon2: por que esse algoritmo venceu a competição de hashing de senhas

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.

Artigos: Hashes/Cripto

Hash Generator: em que MD5, SHA-1 e SHA-256 diferem entre si

Por que o MD5 ainda é usado para verificar a integridade de arquivos, mas não para senhas.

Checksum Verifier: como verificar que um arquivo não está corrompido

Por que um checksum coincidente confirma a integridade de um arquivo, mas não quem o criou.

HMAC: em que um hash com chave difere de um hash comum

Por que um SHA-256 comum não protege contra a adulteração de uma mensagem, mas o HMAC sim.

Bcrypt: por que as senhas são hasheadas devagar, não rápido

Por que um SHA-256 rápido é uma má escolha para senhas, e um bcrypt lento é a certa.

UUID: como são gerados identificadores que quase nunca se repetem

Por que um UUID v4 pode ser gerado de forma independente em milhões de máquinas sem risco de colisão.

Gerador de senhas: o que realmente torna uma senha forte

Por que uma senha longa feita de palavras de dicionário é mais forte que uma curta com símbolos e números.

AES: como funciona a criptografia simétrica

Por que a mesma chave cifra e decifra os dados no AES, e como isso difere da criptografia assimétrica.

Scrypt: por que o algoritmo precisa de tanta memória

Por que o scrypt exige deliberadamente muita memória para dificultar a quebra em dispositivos ASIC.

TOTP: como funcionam os códigos de uso único em apps autenticadores

Por que o código do Google Authenticator funciona sem internet e se sincroniza com o servidor apenas pela hora.

PBKDF2: o padrão mais antigo de alongamento de chave

Por que o número de iterações recomendado para o PBKDF2 cresce a cada ano.

X.509: o que há dentro de um certificado SSL

O que exatamente o navegador verifica no certificado de um site antes de mostrar o cadeado verde.

PGP: como funciona a criptografia de chave pública e privada

Por que se pode compartilhar livremente uma chave pública PGP, mas nunca a privada.