Хэши и пароли: MD5, SHA и bcrypt — что выбрать
Хэш — это не шифрование
Хэш-функция превращает данные в строку фиксированной длины необратимо: из хэша нельзя восстановить исходные данные. Её используют для проверки целостности и хранения паролей. Шифрование, в отличие от хэша, обратимо при наличии ключа.
Почему MD5 и SHA не подходят для паролей
Эти функции специально сделаны быстрыми — современная видеокарта перебирает миллиарды вариантов в секунду. Для паролей нужны намеренно медленные алгоритмы: bcrypt, scrypt, Argon2. Они замедляют перебор и включают соль — случайную добавку, из-за которой одинаковые пароли дают разные хэши и обесцениваются заранее посчитанные таблицы.
HMAC для подписи данных
Когда нужно подтвердить, что данные пришли от того, кто знает секретный ключ (вебхуки, токены), используют HMAC — хэш с ключом. Без ключа подделать подпись нельзя.
Инструменты
Посчитать хэш разными алгоритмами поможет «Генератор хэшей», получить bcrypt-хэш пароля — «Bcrypt хэш», подписать данные — «Генератор HMAC», а оценить, насколько крепок пароль, — «Проверка стойкости пароля».
Инструменты из статьи
Перейдите и сразу попробуйте — всё работает бесплатно в браузере.