【问题标题】:Signing contents of a file archive文件存档的签名内容
【发布时间】:2011-11-30 19:35:18
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# encryption archive signing


    【解决方案1】:

    幸运的是,System.IO.Packaging 命名空间包含对数字签名的支持,这是开放打包约定 (OPC) 的一部分。见:

    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 文件可以包含数字签名。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多