MD5 — это так называемый алгоритм дайджеста сообщения, который используется, в том числе, в криптографии. MD5 — это один из нескольких алгоритмов хеширования, разработанных Рональдом Ривестом , и он основан на более раннем алгоритме MD4, который, как показал анализ, потенциально небезопасен. Эталонная реализация алгоритма представлена в стандарте IETF RFC 1321.
Сегодня приложения, требующие более высокой безопасности данных, используют, например, хэши SHA.
В результате алгоритм MD5 создает 128-битный хеш, который обычно представляется в виде 32-символьной шестнадцатеричной кодировки. Например, хеш MD5 строки: 8c1788205b6abffb0c6a4a1f4b10395a
.
На самом деле невозможно создать исходное сообщение из хеша MD5. Если бы это было возможно, его использование для сжатия данных было бы настоятельно рекомендовано, потому что, например, файл размером в четыре гигабайта можно было бы построить из строки всего из 32 символов. Вот почему он называется алгоритмом одностороннего хеширования .
Взлом хэша MD5 все еще возможен. Нужно подойти к делу с другой стороны. Мы сами создаем хэши MD5 из разных слов и символов, а затем сравниваем их с оригиналом. Если они одинаковы, мы можем почти с уверенностью сказать, что этот хэш относится к этой строке. Скорости домашнего компьютера обычно недостаточно для эффективной передачи хэшей MD5.
Однако в Интернете есть несколько сервисов, которые предлагают базу данных дайджестов различных слов и строк. Подав хэш MD5, например "1ad99cbe9e425d4f19c53a29d4f12597
", в эту службу, она просмотрит свою базу данных и увидит, была ли ранее найдена правильная строка для этого хэша.
Другой сервис, ныне несуществующий milw0rm.com, предлагал бесплатное время обработки в течение многих лет. Сервис использовался для создания хэшей MD5. Когда в очереди подошла очередь отправленной печати, началось создание и сравнение печатей. Вы можете посетить веб-сайт, чтобы проверить статус печати и, возможно, получить исходное сообщение (например, пароль).
Многие системы Unix хранят информацию о пароле пользователя, вычисляя хэш пароля , который затем сохраняется в базе данных паролей. Таким образом, пароль не будет раскрыт, даже если содержимое базы паролей попадет в чужие руки. Также пароль никогда не путешествует по сети незащищенным, потому что рабочая станция отправляет хэш написанного пароля после получения запроса от сервера . Таким образом, только тюлень проходит через сетку. По той же причине системные администраторы или другой ИТ-персонал не могут сообщить пользователю его пароль после того, как он его потерял. В этих случаях пользователь должен создать новый пароль.
Контрольные суммы MD5 часто используются в программах с открытым исходным кодом , где его задача — убедиться, что программный код не был изменен. Таким образом, например, можно избежать троянов и вирусных инфекций. Такую же сумму можно также использовать, чтобы убедиться, например, что ISO - образ диска загруженной программы не имел ошибок при переносе. Если образ диска загружается со вторичного сервера ( зеркала ), то необходима проверка целостности и неизменности образа диска. Дополнительные серверы не контролируются так же эффективно, как основной сервер загрузки, поэтому информация может быть изменена. Например, в него мог быть внедрен вредоносный код.