Конечно, я знаю, возможно создать файл с определенным размером и как сделать это. Но действительно ли возможно создать файл с определенным размером и также определенным цифровым отпечатком MD5?
Теоретически да. Практически, это, скорее всего, потребует вычисления всех перестановок всех n байтов в файле - бестселлером, прямым перебором. Значит, это вряд ли возможно в разумные сроки.
MD5 - это алгоритм криптографического хеширования. Единственная его суть в том, что создать файл с определенным хешем непросто.
При этом исследователи недавно обнаружили недостатки в алгоритме. Некоторая информация есть на странице Википедии .
Невозможность найти файл с определенным хешем является одним из определяющих свойств криптографической хеш-функции, такой как md5.
Несмотря на то, что md5 был взломан, эти разрывы позволяют создавать только два разных файла (изображения) с одним и тем же хешем, но не с заранее определенным хешем.
То, что вы хотите, называется атакой по предварительному изображению, и поскольку md5 все еще не прерван в отношении этой атаки, вам необходимо использовать грубую силу.
Это требует в среднем 2 64 (2 128/2 ) операций хеширования, что намного превосходит все, что мы можем получить на современных компьютерах.
В Википедии также есть статья об атаках с предварительным изображением:
http://en.wikipedia.org/wiki/Preimage_attack
Алгоритм MD5 не обратимый (вообще говоря), поэтому ответ отрицательный. Если, конечно, вы не знаете хэш MD5 какой-либо строки и не помещаете эту строку в файл. Но я думаю, это не имело бы большого смысла.
Каждый создаваемый вами файл будет иметь определенный размер и определенный хеш MD5 .
Если вам нужен предопределенный размер и хэш MD5, это практически невозможно (вам придется вычислять все хеши для всех возможных входов).
Просто создать файл с заданным MD5-хэшем достаточно сложно без дополнительных требований к размеру.
Можно попробовать радужную таблицу, но это требует много времени для создания и огромного объема памяти для хранения.