Hashes/Cripto
PBKDF2 Hash + Verify
Derive uma chave com PBKDF2 (RFC 8018) a partir de uma senha, HMAC-SHA1/256/384/512, com número de iterações configurável.
PBKDF2 (RFC 8018) applies HMAC to a password and salt repeatedly to deliberately slow down computation — it's the oldest of the standardized algorithms for password hashing and encryption key derivation.
How to use it
- Derive: enter a password, pick an HMAC algorithm (SHA-1/256/384/512), and set the iteration count to get a derived key of the requested length.
- Verify: paste a password and an existing PBKDF2 hash to check whether they match, without recomputing it manually.
- More iterations means slower, more secure computation — tune the value to your server's response-time budget.
Common uses
- Deriving an encryption key from a user's password for a file container or a custom protocol.
- Checking a PBKDF2 implementation for compatibility across programming languages (the parameters must match exactly).
- Hashing passwords in systems that require a FIPS-compliant algorithm (PBKDF2 is NIST-approved).
Things to keep in mind
Unlike bcrypt and Argon2, PBKDF2 isn't memory-hard — it only requires CPU time, so it's less resistant to attacks on GPUs with many parallel compute units.
The recommended iteration count rises over time in NIST and OWASP guidance as hardware gets faster — check against current recommendations periodically.
Artigo sobre esta ferramenta: PBKDF2: o padrão mais antigo de alongamento de chave
Perguntas frequentes
Como o PBKDF2 difere do bcrypt ou Argon2 para hash de senhas?
O PBKDF2 aplica repetidamente uma função hash HMAC para desacelerar tentativas de força bruta, mas, ao contrário do bcrypt ou Argon2, não exige muita memória, tornando-o comparativamente mais barato de quebrar usando GPUs. Ainda é amplamente usado e aprovado pelo FIPS, mas o Argon2 é geralmente preferido para novos sistemas.
O que a contagem de iterações controla, e quão alta ela deve ser?
A contagem de iterações define quantas vezes o hash subjacente é aplicado, trocando diretamente velocidade por resistência à força bruta. As diretrizes atuais recomendam centenas de milhares de iterações para SHA-256, ajustadas para cima com o tempo à medida que o hardware melhora.
Por que o PBKDF2 precisa de um salt?
Um salt garante que senhas idênticas produzam saídas diferentes, impedindo que atacantes usem rainbow tables pré-computadas e forçando-os a atacar cada hash individualmente.
A escolha da função hash base do PBKDF2 importa?
Sim. Implementações antigas costumavam usar HMAC-SHA1 por padrão — na construção do HMAC, isso não é uma vulnerabilidade crítica, mas as recomendações atuais indicam claramente HMAC-SHA256 ou mais forte, por uma margem de segurança maior sem perda perceptível de velocidade.
Onde mais o PBKDF2 é usado, além do armazenamento de senhas?
O PBKDF2 é amplamente usado para derivar chaves criptográficas de criptografia a partir de senhas — por exemplo, no WPA2/WPA3 para Wi-Fi e em muitos formatos de contêineres de arquivos criptografados.