Это действительно зависит от того, чего вы пытаетесь достичь, что находится на ставках и каковы ограничения.
По сути: то, что вы просите, просто невозможно (изолированно).
Теперь вопрос заключается в том, чтобы усложнить жизнь людям, пытающимся изменить файл, так что это будет стоить им дороже, чем то, что они могли бы заработать, выполнив модификацию. Конечно, это означает, что хакеры, мотивированные единственной целью взломать ваши меры защиты, не будут так сильно сдерживаться ...
Предполагая, что он должен работать на автономном компьютере (без сети), это, как я уже сказал, невозможно. Независимо от того, какой процесс вы используете, какой бы ни был ключ / алгоритм, он в конечном итоге встроен в двоичный файл, который подвергается проверке потенциальным хакером. Его можно разобрать, можно проверить его с помощью hex-ридеров, можно проверить его с разными входами, подключить отладчик и т. Д. Таким образом, вы можете сделать отладку / проверку болезненной, нарушив логику. , используя обнаружение отладки, чтобы изменить пути, и если вы очень хорошо используете самоизменяющийся код. Это не означает, что это станет невозможным для вмешательства в процесс, это лишь означает, что это должно стать достаточно трудным, чтобы любой злоумышленник покинул его.
Если в вашем распоряжении есть сеть, вы можете сохранить хэш на удаленном (под вашим контролем) диске, а затем сравнить его. 2 трудности здесь:
- Хранение (как убедиться, что это ваш двоичный файл?)
- Получение (как убедиться, что вы разговариваете с нужным сервером?)
И, конечно же, в обоих случаях остерегайтесь человека в середине синдрома ...
Последний совет: если вам нужна безопасность, вам нужно проконсультироваться с настоящим экспертом, не полагайтесь на каких-то странных парней (таких как я), разговаривающих на форуме. Мы любители.