В настоящее время принятый ответ не совсем прав. Реальный ответ: Это зависит от модели..
Прежде всего напомним, что хеш-функция отображает из множества всех двоичных последовательностей в конечное множество, как правило, множество последовательностей фиксированной длины, которая называется длиной хэш-файла . Поэтому эта функция не может быть 1-к-1, т. Е. Должен быть какой-то вывод функции, к которой отображаются множественные входы. Таким образом, вообще не может быть алгоритма, который отображает хэш на вход, который генерировал этот хеш, потому что этот процесс не является корректным (нет однозначного ответа).
К счастью, вы спрашиваете об изменении функции хеш-функции для конкретного ввода, поэтому на самом деле это возможно. Хотя хеш-функция не является 1-к-1, может существовать определенный вывод, к которому только один вход сопоставляет. Если ваш вход является одним из таких входов, вам повезло и алгоритму грубой силы, который перечисляет все двоичные строки, хэширует каждый, и выводит первую двоичную строку, хешируя правильное значение, вернет правильный ответ. Также возможно, что у вас есть дополнительная информация о вводе. Например, вы можете знать, что это грамматический английский текст или действительный документ HTML. Даже если есть несколько входов, которые соответствуют заданному хеш-значению, возможно, что только один вход правильного формата и размер, который соответствует вашему жесткому диску, соответствуют этому хеш-значению.В идеальном случае у вас есть коллекция файлов-кандидатов, в которых вы знаете, что ваш файл был среди них - в этом случае почти наверняка не более одного хэша для данного значения и хэширования каждого такого файла до тех пор, пока хеш не будет соответствовать правильному значению, что даст правильный ответ ,
Плохая новость заключается в том, что в то время как может быть в состоянии инвертировать значение хэш-функции, криптографические хеш-функции были разработаны, чтобы сделать этот процесс злонамеренно неэффективным. Если вы не можете сузить пространство ввода на что-то маленькое, вам, вероятно, придется запустить массивный процесс грубой силы, который не будет завершен до жары смерти Вселенной.
* «Было бы достаточно информации, чтобы сузить возможные ответы только на один?» * - что именно вы хотите выяснить? Если содержимое файла известно и мусор известен, то в чем цель? –
@Artjom B. В конечном счете, мне интересно, возможно ли точное изменение хэша через математику. Я думаю, что речь идет не о информации, содержащейся в хеше, а о том, что она может быть восстановлена. – DFR
Я бы сказал, это невозможно, но это, вероятно, зависит от хэш-функции. Если у вас есть определенная функция хэша и ясная проблема, вы можете задать [crypto.se]. –