Я работаю над генератором данных, чтобы сгенерировать двоичные файлы в закрытой системе, для которой мы предполагаем, что нет никакого риска внешних атак или каких-либо злонамеренных намерений.
Идея состоит в том, чтобы найти способ дляэти двоичные файлы содержат быстрый и относительно надежный способ гарантировать, что они не были случайно повреждены в цепочке инструментов, поэтому конечный получатель этого двоичного файла может проверить целостность файла без каких-либо дополнительных ресурсов (таких как file.sha1, содержащий контрольную сумму).
Поскольку это может повлиять на решение, я должен сказать, что двоичный файл может иметь размер от 1 кБ до, возможно, 300 МБ данных.В файле есть определенная позиция, где я могу разместить контрольную сумму любой фиксированной длины для всех файлов.Позиция уже определена, я не могу изменить ее, но могу изменить длину.
Так что, если решение состоит в том, чтобы включить 128 байтов данных в эту позицию, чтобы удовлетворить любой возможный случай, тогда все двоичные файлы будут содержать этодлина байта в этой позиции.
Поскольку было бы невозможно включить в него криптографический хэш файла без необходимости обрезать его перед проверкой, я прочитал, что CRC32 - хороший способ достижения этой цели.Я также ознакомился с такими утилитами, как «обман» или «манипулятор CRC», но они, похоже, не удовлетворяют моему случаю.
Вот краткий пример того, что мне нужно.Давайте рассмотрим двоичный файл:
This position will never change
v
1011101100010010000000010110011100100110
^^^^^^^^
This is the fixed-length part dedicated to file integrity check
Я хотел бы найти способ вставить правильную контрольную сумму, чтобы у всего файла, включая контрольную сумму, была общая контрольная сумма.Может быть, известная программа уже делает это?
Спасибо за вашу поддержку