Подписание содержимого файлового архива - PullRequest
0 голосов
/ 04 октября 2011

Допустим, у меня есть собственный формат файлового архива, похожий на Zip или Rar, например. Небольшая игра, над которой я работаю, во время выполнения будет читать архивные файлы, которые могут быть текстурами, звуками, файлами XML или чем-то еще.

Теперь я хотел бы проверить подлинность архива (или даже отдельных файлов внутри архива), чтобы игра могла различать «официальные» файлы, выпущенные мной, и модифицированные файлы или архивы, выпущенные некоторыми ультрасовременное. Игра по-прежнему сможет нормально читать моддированные файлы, но будет отображать какое-то предупреждение или уведомление о наличии измененных данных.

Как я мог пойти по этому поводу? Какие средства шифрования или подписи в C # могут быть полезны? Это вообще выполнимо или мне просто все равно?

Ответы [ 2 ]

4 голосов
/ 04 октября 2011

Просмотрите RSACryptoServiceProvider: http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsacryptoserviceprovider.aspx

Вы можете использовать его для генерации пары ключей RSA и подписать хеш файла с помощью своего закрытого ключа.Затем вы можете использовать свой открытый ключ (хранящийся в вашем исполняемом файле) для проверки подписи.

1 голос
/ 04 октября 2011

К счастью, пространство имен System.IO.Packaging включает поддержку цифровых подписей, которые являются частью Open Packaging Conventions (OPC). См:

http://msdn.microsoft.com/en-us/library/system.io.packaging.package.aspx? http://msdn.microsoft.com/en-us/library/aa905326.aspx

OPC-файл - это ZIP-файл, формат которого соответствует спецификации OPC. Файл OPC может содержать цифровую подпись.

...