![]() |
Чем разная криптография и хеширование отличаются по смыслу и когда что лучше применять?
Короче, часто путают хеширование с криптографией, хотя это не совсем одно и то же. Хеш — это просто сжатая “отпечаток” информации фиксированной длины, обычно для проверки целостности или быстрого поиска совпадений. А криптография — это про шифры, секретность и защиту данных.
Если надо проверить, не изменился ли файл, обычно хватает хеша. Самые популярные — MD5, SHA-1, SHA-256. Но сейчас MD5 и SHA-1 уже считаются слабоватыми, их можно столкнуть с коллизиями. Поэтому для серьезной проверки берут SHA-256 или выше. Когда же нужно именно шифровать, чтобы никто кроме получателя ничего не прочитал, тогда включается криптография с ключами — симметричная или асимметричная. Там хеши тоже используются, но скорее как часть процесса, а не для замены шифра. В задачах типа “расшифровки” хешей на практике чаще всего речь про поиск коллизий или брутфорс. Прямой дешифровки хеша не существует, у разных алгоритмов разная стойкость. Так что выбор зависит от того, для чего используете хеш: просто проверка, хранение паролей (там лучше добавлять соль и использовать сложные хеши вроде bcrypt), или что-то другое. Кого как пробовали в своих проектах? Какие случаи были, когда хеша не хватило? И что на паролях лучше использовать, подскажите? |
В общем, хеш — это просто контрольный штамп, чтобы понимать, не изменился ли файл или пароль. А криптография — уже про надежное скрытие данных, чтоб никто чужой не влез. Если хочешь просто проверить целостность или быстро сравнить — достаточно хеша, а для защиты или передачи данных лучше криптографию. В паролях хеш с солью — это норма, обычный MD5 и SHA-1 уже не катят.
|
| Время: 22:34 |