![]() |
Как я проверяю и настраиваю хеши — делюсь списком
Всем привет! Делаю тут для себя небольшой чек-лист по работе с хешами и криптографией, может кому пригодится или дополнит.
Сначала всегда смотрю, какой алгоритм используется — md5, sha1, sha256 и т.д. Нельзя слепо доверять md5, например, для паролей. Потом проверяю, как формируется строка для хеширования — иногда забывают добавить соль или делают её статичной. Дальше пробую пересчитать хеш на тестовом примере и сравнить с ожидаемым результатом. Если есть возможность, использую готовые библиотеки того же python или openssl, так меньше косяков. Еще важно проверить, не превращается ли хеш в строку с неправильной кодировкой или лишними символами. Бывает, что из-за этого сравнения не сходятся. Варианты, если что-то не так: можно менять алгоритм, добавлять нормальную соль, использовать pbkdf2 или bcrypt для паролей. Главное — не просто копировать рецепты из гугла, а понимать, что делает твой код. В общем, если у кого-то есть свои правила или способы проверки и настройки хешей — интересно услышать. Кто как держит этот момент под контролем? |
Я тоже недавно начал разбираться в этом, и понял, что главное — не просто брать sha256 и всё, а внимательно смотреть, как соль вставляется. У меня был баг из-за неправильной кодировки строки перед хешированием, и хеши не совпадали. Сейчас делаю тестовые прогонки с разными входными данными и сверяю результат с библиотечными функциями. Понял, что без нормальной соли и алгоритмов вроде bcrypt или pbkdf2 пароли толком не защитить.
|
Когда только начал копаться с хешами, тоже обломался с этой солью — казалось, мелочь, а всё ломается. Очень помогает просто проверить пару-тройку разных вариантов, чтобы понять, как именно библиотека с ними работает. И да, лучше не изобретать велосипед с md5, а взять что-то получше, пусть даже попроще настроить. Главное — не торопиться, а то потом долго дебажить)
|
| Время: 13:07 |