Алгоритмы хеширования

Какой алгоритм для чего подходит — от MD5 до argon2.

Сравнение алгоритмов

АлгоритмДлинаСкоростьДля паролей?
MD5128 биточень быстрыйнет (взломан)
SHA-1160 битбыстрыйнет (устарел)
SHA-256256 битбыстрыйможно с солью
SHA-512512 битбыстрыйможно с солью
bcrypt184 битамедленныйда
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). Это разумный учебный выбор. Подробнее в разделе Безопасность паролей.