Можно ли сгенерировать текстовый файл, содержимым которого является значение hash/md5 файла.
Как написать программу?
Можно ли сгенерировать текстовый файл, содержимым которого является значение hash/md5 файла.
Как написать программу?
Если такой файл существует, его можно сгенерировать, перепробовав все возможные хэши MD5 и проверив, равен ли ему его хеш MD5. Но поскольку все возможные хэши MD5 являются конечным набором, такое специальное значение MD5 может вообще не существовать.
Примечание: вы спросили только, возможно ли это, а не сколько времени это займет.
Мне тоже было интересно, поэтому я написал следующую программу на паскале:
program hash;
uses md5;
var a, b: string;
begin
b:='d41d8cd98f00b204e9800998ecf8427e'; //md5sum of /dev/null
repeat
a:=md5Print(md5String(b));
b:=md5Print(md5String(a));
until a=b;
writeln(a);
writeln(b);
end.
Работает уже дней пять, а результата пока нет)))
Обратите внимание, что если вы хотите использовать грубую силу, подход триметокси в корне ошибочен. Каждый хэш фактически указывает на другой случайный хэш, и по мере увеличения серии хэшей становится все более вероятным, что любой вновь посещенный хеш просто укажет вам на ранее посещенный хэш, образуя цикл длиной в миллионы или миллиарды хэшей.
Если мы предположим, что все хеш-пространство MD5 не является единым циклическим циклом, что крайне маловероятно, то почти все значения находятся в конкурентно коротком циклическом цикле, который оставляет подавляющее большинство хэшей MD5 непосещенными.
По сути, даже если самосопоставленные хэши существуют, этот подход с большей вероятностью просто поместит себя в бесконечный цикл, чем на самом деле найдет его.