我们的应用程序使用C ++代码中的RC2encryption一个值,然后我用.NET写了一个解密程序
问题是,它在我们的开发服务器上工作正常,这是Windows 2003,但在Windows 2000上失败。 它运行相同的代码,我检查了其他的一切,似乎在encryption的方式有所不同。
有没有人有任何经验呢?
win2000 / winxp加密/解密有一个隐晦的问题 。 win2000上的密码服务提供程序有效密钥长度为40,即使使用128位密钥,默认情况下也是如此。 因此,要解决您必须在2000年手动重置有效密钥长度,或者您可以将它设置为40之前解密的winxp(或win2003在我的情况下)。
如果使用C#解密,那么如果使用RC2CryptoServiceProvider类,则无法将有效密钥大小设置为与密钥大小不同的值。
我在使用加密服务提供程序的XP SP1和XP SP2之间遇到了同样的问题,加密的值对于我现在还不记得的一个特定的加密来说是不同的。