Я хотел бы иметь возможность изменить указанное содержимое файла, но в то же время сохранить уже известную (установленную) контрольную сумму, заполнив остальную часть файла необходимыми символами.
Вы не можете сделать это, по крайней мере, с помощью любого алгоритма хеширования, который стоит того (крипто-каламбур не предназначен ... Я клянусь!).Ну, вы могли бы, в теории , но тогда невозможно сказать, сколько символов (и сколько времени и дискового пространства!) Вам нужно будет добавить, чтобы получить коллизия хешей, которая дает точно такой же хеш, что и исходный файл.
То, что вы спрашиваете, в основном сводит на нет всю цель контрольной суммы .
Я неподумайте, что компьютер ATARI использовал хеширование SHA-1 (160 бит), не говоря уже о SHA-256 или SHA-512 (или 128-битном MD5), или любой другой широко используемый сегодня алгоритм.
Вы могли бы реализоватьнекоторые алгоритмы с низкой битовой контрольной суммой , но чем меньше хеш, тем выше риск коллизии хеш-кода - и чем проще получить хеш, который сталкивается с вашим значением контрольной суммы, тем более бессмысленным являетсяконтрольная сумма:.
По определению , функция хеширования необратима, и соленый криптографический хеш даже не будет выдавать один и тот же выход, если два идентичных входа.Я не знаком с контрольной суммой, но если бы мне нужно было ее реализовать, я бы, вероятно, использовал бы криптографический алгоритм хеширования с высокой разрядностью, чтобы снизить риск коллизии хешей до статистической незначимости.