Password Hashing
Hashing de Senhas (Armazenamento Seguro de Credenciais)
O processo de transformar senhas em texto simples em representações criptografadas irreversíveis que podem ser armazenadas com segurança, usando algoritmos deliberadamente lentos para tornar ataques de força bruta impraticáveis.
Detalhe técnico
Algoritmos de hashing de senhas incluem bcrypt (baseado em Blowfish, fator de custo ajustável, salt de 128 bits), Argon2 (vencedor da Competição de Hashing de Senhas, custo de memória e paralelismo ajustáveis, variantes Argon2id/d/i), PBKDF2 (iterações HMAC-SHA256, padrão NIST SP 800-132) e scrypt (custo de memória ajustável). Todos incorporam um salt aleatório (valor único por usuário) para impedir ataques com tabelas arco-íris. O fator de custo deve ser ajustado para levar ~250ms por hash em hardware atual. Nunca use funções de hash rápidas (MD5, SHA-256) diretamente — são rápidas demais (bilhões de hashes por segundo em GPUs). O credential stuffing é mitigado por limitação de taxa, não pelo algoritmo de hash.
Exemplo
```
Password hashing comparison:
bcrypt: $2b$12$salt22chars..hash31chars..
Cost factor 12 → ~250ms per hash
argon2id: $argon2id$v=19$m=65536,t=3,p=4$salt$hash
Memory: 64MB, Iterations: 3, Parallelism: 4
Never use: MD5, SHA-256 alone (too fast → brute-forceable)
```