【发布时间】:2008-11-24 19:29:45
【问题描述】:
我们的应用在 C++ 代码中使用 RC2 加密一个值,我在 .NET 中编写了一个解密例程
问题是它在我们的开发服务器上运行良好,它是 Windows 2003,但在 Windows 2000 上却失败了。它运行相同的代码,我检查了其他所有内容,似乎 2 加密方式存在差异。
有人有这方面的经验吗?
【问题讨论】:
标签: .net c++ windows encryption
我们的应用在 C++ 代码中使用 RC2 加密一个值,我在 .NET 中编写了一个解密例程
问题是它在我们的开发服务器上运行良好,它是 Windows 2003,但在 Windows 2000 上却失败了。它运行相同的代码,我检查了其他所有内容,似乎 2 加密方式存在差异。
有人有这方面的经验吗?
【问题讨论】:
标签: .net c++ windows encryption
【讨论】:
有一个obscure issue 带有win2000/winxp 加密/解密。 win2000 上的 Cryptography Service Provider 的有效密钥长度为 40,即使您使用 128 位密钥也是默认使用的。因此,要解决此问题,您必须在 2000 上手动重置有效密钥长度,或者您可以在 winxp(或在我的情况下为 win2003)上解密之前将其设置为 40。
如果您使用C# to decrypt,则无法将有效密钥大小设置为与使用 RC2CryptoServiceProvider 类时的密钥大小不同的值。
【讨论】:
我在使用加密服务提供商的 XP SP1 和 XP SP2 之间遇到了同样的问题,对于 1 个我暂时不记得的特定加密,加密的值是不同的。
【讨论】: