签署文件存档的内容

时间:2011-10-04 15:39:33

标签: c# encryption archive signing

假设我有一个类似于Zip或Rar的自定义文件存档格式,例如。我正在研究的小游戏会在运行时读取存档文件,这些文件可能是纹理,声音,XML文件或其他任何内容。

现在我想要一种方法来验证存档的真实性(甚至存档中的单个文件),这样游戏就可以区分我发布的“官方”文件和某些人发布的修改过的文件或档案莫德。游戏应该仍然能够很好地读取修改后的文件,但它会显示某种警告或有关修改数据存在的通知。

我怎么能这样做? C#中的哪些加密或签名工具可能有用?这甚至是可行的,还是我不在乎?

2 个答案:

答案 0 :(得分:4)

查看RSACryptoServiceProvider: http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsacryptoserviceprovider.aspx

您可以使用它生成RSA密钥对,并使用您的私钥对文件的哈希进行签名。然后,您可以使用您的公钥(存储在您的可执行文件中)来验证签名。

答案 1 :(得分:1)

幸运的是,System.IO.Packaging命名空间包括对数字签名的支持,数字签名是Open Packaging Conventions(OPC)的一部分。参见:

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

OPC文件是ZIP文件,其格式符合OPC规范。 OPC文件可以包含数字签名。