Password Hashing
Хеширование паролей (безопасное хранение учётных данных)
Процесс преобразования пароля в открытом виде в необратимое хеш-значение фиксированной длины для хранения, гарантирующий, что даже при компрометации базы данных исходные пароли не могут быть легко восстановлены.
Техническая деталь
Алгоритмы хеширования паролей должны быть намеренно медленными для защиты от перебора: bcrypt (1999, настраиваемый фактор работы, 184-битный результат), scrypt (2009, требователен к памяти, устойчив к GPU-атакам) и Argon2 (2015, победитель Password Hashing Competition, настраиваемые время/память/параллелизм). Каждый пароль комбинируется с уникальной случайной солью перед хешированием для защиты от радужных таблиц. Перец (серверный секрет) обеспечивает дополнительную защиту. Обычные криптографические хеши (SHA-256) непригодны, поскольку рассчитаны на скорость, позволяя миллиарды попыток в секунду на GPU. OWASP рекомендует Argon2id как основной выбор.
Пример
```
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)
```