【问题标题】:Windows 2000 and Windows 2003 RC2 encryption/decryption using windows Crypto API?Windows 2000 和 Windows 2003 RC2 使用 Windows Crypto API 加密/解密?
【发布时间】:2008-11-24 19:29:45
【问题描述】:

我们的应用在 C++ 代码中使用 RC2 加密一个值,我在 .NET 中编写了一个解密例程

问题是它在我们的开发服务器上运行良好,它是 Windows 2003,但在 Windows 2000 上却失败了。它运行相同的代码,我检查了其他所有内容,似乎 2 加密方式存在差异。

有人有这方面的经验吗?

【问题讨论】:

    标签: .net c++ windows encryption


    【解决方案1】:
    1. 确保 Windows 2000 具有 SP3,否则加密工作的可能性要小得多,尤其是在使用 Capicom(或其封装的 api)时。
    2. 如果使用 Capicom(或其封装的 api),Windows 2000 并非支持所有加密算法和密钥长度。

    【讨论】:

    • 谢谢布赖恩。我会检查它是否有sp3。我尝试使用 40 位密钥解密,但没有成功。
    【解决方案2】:

    有一个obscure issue 带有win2000/winxp 加密/解密。 win2000 上的 Cryptography Service Provider 的有效密钥长度为 40,即使您使用 128 位密钥也是默认使用的。因此,要解决此问题,您必须在 2000 上手动重置有效密钥长度,或者您可以在 winxp(或在我的情况下为 win2003)上解密之前将其设置为 40。

    如果您使用C# to decrypt,则无法将有效密钥大小设置为与使用 RC2CryptoServiceProvider 类时的密钥大小不同的值。

    【讨论】:

      【解决方案3】:

      我在使用加密服务提供商的 XP SP1 和 XP SP2 之间遇到了同样的问题,对于 1 个我暂时不记得的特定加密,加密的值是不同的。

      【讨论】:

        猜你喜欢
        • 2019-06-26
        • 2014-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多