Страницы

Поиск по вопросам

четверг, 6 декабря 2018 г.

Вернуть md5 к исходному значению на С

Подскажите какой-нибудь декриптор или что-нибудь в этом роде на Си для md5. Нужно сделать так, чтобы шифровка md5 превращалась в то, что было до шифрования. Возможно ли такое в принципе, и если нет, то почему?


Ответ

MD5 - это не "шифрование", это хэш-функция. Основное требование к криптографическим хэш-функциям - необратимость.
Если бы хэши были обратимы, то архиваторы и прочие алгоритмы сжатия стали бы не нужны. Например, я посчитал хэш от терабайтного файла. Получил 79a2520f22b9e1526ff93176029603b8. Вы считаете что можно эту строчку расшифровать обратно в тот же терабайт информации?
Максимум, что можно сделать для MD5 - найти коллизию (второй прообраз) - строчку, для которой MD5 выдаст такое же значение. Это можно сделать или по готовым словарям (если есть подозрение что строчка - это пароль вида 12345), или с использованием радужных таблиц.
Но никакой гарантии что вы получите при этом именно оригинальную строку нет. Точнее, вы с некоторой вероятностью получите оригинальную строку, если она была короткой. Но вы точно получите неоригинальную строку, а просто коллизию, если оригинал был достаточно длинным.
Если поиска коллизии для вас достаточно - поищите готовую опен-сорс реализацию работы с радужными таблицами, например MD5Rainbow

Комментариев нет:

Отправить комментарий