Алгоритмы хеширования
Какой алгоритм для чего подходит — от MD5 до argon2.
Сравнение алгоритмов
| Алгоритм | Длина | Скорость | Для паролей? |
|---|---|---|---|
| MD5 | 128 бит | очень быстрый | нет (взломан) |
| SHA-1 | 160 бит | быстрый | нет (устарел) |
| SHA-256 | 256 бит | быстрый | можно с солью |
| SHA-512 | 512 бит | быстрый | можно с солью |
| bcrypt | 184 бита | медленный | да |
| argon2 | настраивается | медленный | да (лучший) |
Быстрый = плохо для паролей
Парадокс: для хеширования паролей медленный алгоритм лучше быстрого. Если хеш считается быстро, хакер может перебирать миллиарды вариантов в секунду. Медленные алгоритмы (bcrypt, argon2) специально замедлены, чтобы перебор стал слишком дорогим.
MD5 и SHA-1 — почему нельзя
Эти алгоритмы устарели: для них найдены коллизии (когда два разных текста дают одинаковый хеш). На этом сайте MD5 убран именно поэтому — оставлены только SHA-256 и SHA-512.
Правило: для проверки целостности файлов — SHA-256. Для хранения паролей в проде — argon2 или bcrypt. Для учебных целей — SHA-256/512 с солью.
Что на этом сайте
Сайт использует SHA-256 и SHA-512 из модуля hashlib с случайной солью и опциональным усиленным хешированием (key stretching). Это разумный учебный выбор. Подробнее в разделе Безопасность паролей.