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