Замечал, что многие, кто только начинает ковыряться с криптографией и хешами, на одним и том же спотыкаются. Вот пара моментов, которые часто задевают:
1. Путаница с солью. Очень часто забывают, что соль — не секрет, а просто дополнительный параметр. Некоторые пытаются её скрыть, а потом удивляются, почему хеши не совпадают.
2. Использование устаревших алгоритмов. MD5 и SHA1 уже давно не катят для серьезных задач, но народ продолжает их применять, особенно для паролей.
3. Неправильная кодировка входных данных. Пытаешься сравнить хеш с одной кодировкой и результат с другой — и провал.
4. Ожидание обратного расшифрования хеша. Тут сразу нужно понимать: хеш — это не шифр, расшифровать его нельзя, максимум — подбор или поиск совпадения в словаре.
5. Использование одинаковой соли для разных записей. Тогда защита становится почти напрасной.
Если проверять эти пункты при работе с хешами, можно избежать кучи головной боли. Кто ещё сталкивался с подобным? Какие косяки ловили?
Часто упускают, что соль — это не секретный ключ, а просто уникальный дополнительный параметр для хеша. И ещё — MD5 и SHA1 уже давно не актуальны, особенно для паролей, тут надо современные алгоритмы использовать, иначе безопасность будет на уровне дырявого ведра.