Почему так легко расшифровать контрольные суммы MD5 - PullRequest
0 голосов
/ 24 ноября 2018

Я недавно возился с сайтом, который конвертирует MD5 в простой текстовый формат.Почему его так легко расшифровать?

Возьмите этот пример

8466fa8e428bf83c4d2d9893b4bada64

7d53cbd3f0c0e2af31c3ba1eab940f22

dc647eb65e6711e155375218212b3964

27d4cf7da57f6748f79254f7be42cca3

909cea0c97058cfe2e3ea8d675cb08e1

Расшифровывает «Мой пароль Gmail оранжевый» менее чем за 1 секунду. Изображение

Даже с sha256 оно мгновенно расшифровывается Изображение

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

md5 - односторонняя функция дайджеста, также известная как хеш-функция.Это не механизм шифрования.

md5 , как известно, имеет несколько недостатков, и общий совет был избегать его использования уже более десяти лет.

Об этомНа конкретном сайте вы, вероятно, видите пример радужных таблиц, используемых для поиска столкновений, или, возможно, даже исходных данных.Радужные таблицы работают путем предварительного вычисления очень большого количества вероятных входных данных (таких как известные пароли, полный словарь для нескольких языков, общие словосочетания и т. Д.).В таких таблицах можно эффективно найти заданный хэш, чтобы найти входные данные, которые производят указанный хэш.

Обратите внимание, что в некоторых случаях вы можете получить другой результат из радужной таблицы и того, который вы использовали в качестве входных данных.В этом случае это также пример столкновения.

Можно защитить от радужных атак, используя соление, которое добавляет случайные данные к каждому входу, так что в заранее вычисленной радужной таблице вряд ли будет ваш точный ввод.

Хотя md5 считается сломанным, он не сломан в той степени, в которой вы можете выполнить прямое «дешифрование» с помощью хэша - большинство атак пытаются произвести столкновения, а не находить прообразы.

Для любой защитычувствительные приложения, вы должны рассмотреть использование современных хеш-функций, таких как sha256 .Для хэширования паролей рассмотрите возможность использования хеш-функций, специально разработанных для хэширования паролей, таких как bcrypt .

0 голосов
/ 24 ноября 2018

Поскольку md5 не является механизмом шифрования, это очень старый односторонний алгоритм хеширования.То, что вы находите, - это столкновения, и они вряд ли будут исходными данными.Они произвели возможное совпадение.Рассмотрим

$ echo "My Gmail Password Is Orange" | md5sum
97ec87f89796b683feae88008c302d22  -
$ echo -n "My Gmail Password Is Orange" | md5sum
52b4551c065189631be8b506eee9b62e  -

Единственная разница между этими двумя String (s) - перевод строки.Это правда, что MD5 сломан.Но это необратимо, если не учитывать очень короткие слова и словарь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...