例如,假设我有一个类似于Zip或Rar的自定义文件存档格式。我正在开发的一个小游戏会在运行时读取归档文件,这些文件可能是纹理、声音、XML文件或其他任何文件。
现在我想要一种方法来验证存档的真实性(甚至是存档中单个文件的真实性),这样游戏就可以区分由我发布的“官方”文件和修改过的文件或由某个modder发布的存档。游戏应该仍然能够很好地读取已修改的文件,但它将显示某种类型的警告或通知,说明是否存在修改的数据。
我该怎么做呢?C#中的哪些加密或签名功能会很有用?这是可行的吗,还是我应该不在乎呢?
发布于 2011-10-04 23:44:02
查看RSACryptoServiceProvider:http://msdn.microsoft.com/en-us/library/system.security.cryptography.rsacryptoserviceprovider.aspx
您可以使用它来生成RSA密钥对,并使用您的私钥对文件的散列进行签名。然后,您可以使用公钥(存储在可执行文件中)来验证签名。
发布于 2011-10-04 23:45:47
幸运的是,System.IO.Packaging名称空间包括对数字签名的支持,这是开放打包约定的一部分。请参见:
http://msdn.microsoft.com/en-us/library/system.io.packaging.package.aspx?http://msdn.microsoft.com/en-us/library/aa905326.aspx
OPC文件是格式符合OPC规范的ZIP文件。OPC文件可以包含数字签名。
https://stackoverflow.com/questions/7650453
复制相似问题