Windows 2000 和 Windows 2003 RC2 使用 Windows Crypto API 加密/解密?

Posted

技术标签:

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

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

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

有人有这方面的经验吗?

【问题讨论】:

【参考方案1】:
    确保 Windows 2000 具有 SP3,否则加密工作的可能性要小得多,尤其是在使用 Capicom(或其封装的 api)时。 如果使用 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 个我暂时不记得的特定加密,加密的值是不同的。

【讨论】:

以上是关于Windows 2000 和 Windows 2003 RC2 使用 Windows Crypto API 加密/解密?的主要内容,如果未能解决你的问题,请参考以下文章

win2000是啥意思

SQL server2000 windows身份验证失败怎么办

windows的cmd命令

windows2000启动故障

Windows 2000 和 Windows 2003 RC2 使用 Windows Crypto API 加密/解密?

如何在英文版windows2000 server 中安装中文语言包