Изменение хеша файлов - PullRequest
2 голосов
/ 13 июля 2010

У меня есть папка с бинарными файлами, и я хочу внести изменения в эти файлы, чтобы хэш этих файлов изменился.Я хочу сделать это способом, который не повреждает файлы.Это означает, что изменение должно по-прежнему позволять файлу работать нормально или я могу отменить изменение в любой момент времени.

Кто-нибудь знает сценарий, который я мог бы использовать для этого или многие другиепрограмма, которая автоматизирует это?

Приветствия

ОБНОВЛЕНИЕ

Это крайний случай, с которым я пытаюсь разобраться.У меня есть система, которая позволяет мне хранить файл с данным хешем только один раз.Поэтому я хочу изменить хэш содержимого файла, чтобы файл мог быть сохранен.Обратите внимание, что рассматриваемая система не является той, которую я контролирую или могу изменить.

Не мог бы я просто добавить случайную 1 в конец файла, а затем удалить ее, ничего не сломав?Я просто не уверен, как это написать - как изменить двоичные данные таким образом.Обратите внимание, что я нахожусь в среде Windows.

Ответы [ 2 ]

3 голосов
/ 13 июля 2010

Не зная формата файлов, мы не можем сказать. На самом деле это может быть невозможно - например, если эти двоичные файлы самозаверяющие с некоторым закрытым ключом. Изменение любого отдельного бита в файле может сделать его недействительным.

Ваш хеш рассчитывается исключительно из содержимого, а не из каких-либо других метаданных, которые вы можете изменить (например, имя файла или дата изменения)? Если так, то вам, вероятно, не повезло. Если хеш предназначен для обнаружения изменения содержимого , но вы пытаетесь изменить хеш без фактического изменения содержимого, у вас явно возникла проблема ...

Для чего используется хеш? Почему вы хотите изменить это? Может быть альтернативное решение, если вы могли бы дать нам больше информации о более широкой картине.

РЕДАКТИРОВАТЬ: Одна из альтернатив заключается в эффективном создании собственного формата контейнера - поэтому, несмотря на то, что файл хранится в формате вашего контейнера, его нельзя использовать в исходном виде, но его легко извлечь Ваш контейнер может быть таким простым, как «добавить четыре байта в конце как начальное число, чтобы нарушить хеш» - «извлечение» файла будет просто копировать его и удалять последние четыре байта. Но важный момент заключается в том, что то, что вы в итоге получите , не будет файлом MP3 или чем-то еще, с чем вы начали - это ваш собственный формат, простой, как он есть. Вам необходимо упаковать / извлечь файл каждый раз, когда вы взаимодействуете с магазином.

0 голосов
/ 14 июля 2010

Мне действительно любопытно, почему вы хотите обойти дедупликацию системы хранения.Какой-то инженер решил, что нужно встроить это в систему.

...