Если мы не можем декодировать хеш-строку MD5, то какова цель MD5, где мы можем использовать MD5.
Назначение или использование MD5
Ответы (6)
Например, для хранения данных сохраните в базе данных.
Если вы сохраните свой пароль с помощью md5 и сравните его с паролем, который вы вводите в форме, и хешируете его, это будет тот же пароль, но вы не сможете увидеть его в виде открытого текста в базе данных.
Например:
password = 123
md5(123) === "202cb962ac59075b964b07152d234b70"
если вы попытаетесь войти в систему и введете 123 в качестве пароля, md5 останется прежним, и вы сможете сравнить их. Но если ваша база данных взломана, хакер не сможет прочитать пароль в открытом виде, только хешированное значение.
Расшифровываемый файл обладает тем свойством, что его размер всегда не меньше размера исходного файла, а хэш намного меньше.
Это позволяет нам создать хэш из файла, который может подтвердить целостность файла, не сохраняя его.
Существует множество причин не хранить файл в зашифрованном виде или в виде обычного текста:
Как только зашифрованный файл попадет в чужие руки, они могут попытаться его расшифровать. Нет никаких шансов, что это произойдет с хешем.
Вам просто самим файл не нужен, но, возможно, вы отправляете его кому-то, и этот человек может подтвердить его целостность, используя хэш.
Он позволяет вам определить, совпадают ли данные, которые у вас есть (например, введенный пароль), с некоторыми другими данными, которые являются секретными (например, правильный пароль), не требуя доступа к секретным данным. Другими словами, его можно использовать, чтобы определить, "является ли этот введенный пользователем пароль правильным?" сохраняя при этом правильный пароль в секрете. (Обратите внимание, что существуют более сильные методы хеширования, которые в наши дни следует использовать вместо md5 для этой цели, такие как sha * и bcrypt. С современным оборудованием довольно легко перебросить миллионы паролей в секунду в хэш md5, пока вы не найдите тот, который соответствует правильному паролю.)
Он позволяет проверить целостность переданного файла, сравнивая хэш md5 исходного файла с хешем md5 полученных данных. Если хеши разные, полученные данные не совпадают с отправленными, поэтому вы знаете, что нужно отправить их повторно; если они одинаковы, вы можете быть уверены, что отправленные и полученные данные идентичны.
Для идентификации можно использовать хорошие хеш-функции, такие как MD5. См. этот вопрос. При определенных условиях вы можете предположить, что равные хэши означают равные блоки данных.
MD5 в основном используется для поддержания целостности файлов при их отправке с одной машины на другую, чтобы определить, не изменил ли какой-либо человек из средней третьей стороны содержимое файлов.
Базовый пример: когда вы загружаете какой-либо файл с сервера, на сервере вычисляется MD5, когда он приходит к вам, он снова проверяет значения md5, если файл совпадений хэша md5 не поврежден или не изменен третьим лицом.
MD5 - это хэш-функция, и есть еще такие, как SHA, PBKDF, bcrypt и scrypt. Я действительно предпочитаю scrypt. Хеш-функции используются по причинам целостности, чтобы обнаружить любые манипуляции, которые могут произойти во время передачи фактического сообщения. Получатель может определить, не изменилось ли полученное сообщение, проверив хэш-значение сообщения.
У этих функций есть три свойства безопасности: 1) кому-то трудно обнаружить фактическое сообщение, когда оно имеет только h (m). 2) Для сообщения m и его хеш-функции трудно найти другое сообщение с таким же хеш-значением. 3) Наконец, трудно найти разным сообщениям m1, m2 с одинаковым значением хеш-функции.
Кроме того, важно знать, что алгоритмы хэш-функции являются общедоступными, и что хэш-значение сообщения очень легко вычислить. Более того, хеш-функции являются «односторонними» функциями, а это означает, что трудно найти сообщение, учитывая хеш-код сообщения. Фактическая безопасность, таким образом, основана на этом свойстве.