Какие грабли ловят чаще всего при работе с криптой и хешами
Кто сколько не пытался — есть набор типовых ошибок, которые вылезают регулярно. Например, самая боль — смешивать понятия хеширования и шифрования, из-за чего потом пытаются «расшифровать» хеш, а это тупиковое дело. Или когда берут устаревшие алгоритмы без соли и подпорок — тоже крышка безопасности.
Еще частая ошибка — считать, что хеш всегда однозначен. На самом деле коллизии никто не отменял, просто редкость. И если вдруг не проверять входные данные, можно попасть в ловушку с одинаковым хешем. Часто забывают на вход ставить нормализацию или стандартизировать формат данных.
Еще момент — неправильное использование готовых библиотек, выбор не той функции или параметров, что ведёт к неправильным или небезопасным результатам. Неряшливая документированность кода и вслепую скопированный пример из гитхаба тоже зарядят огорчений потом.
На практике, чтоб избежать большинства проблем — всегда сначала чётко определяй цель: просто проверить целостность, хранить пароли или что-то ещё. Затем внимательно выбирай методы и инструменты. И да, если нужна проверка/расшифровка хешей — всегда сначала проанализируй, можно ли это целиком легально и технически реально.
Кто что ещё подмечал в своих проектах, где криптоошибки больно били? Поделитесь, может, сделаем общий список ловушек?