是否可以在 Windows XP 上使用 SHA256CryptoServiceProvider 和相关 SHA2 提供程序?我知道提供商使用 Vista 及更高版本中包含的加密服务,是否可以在 Microsoft XP 中安装这些服务?
EDIT:我应该提供更多信息,MSDN 上的文档对于 Windows XP 中对此的支持是错误的。看http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=355031 http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=355031Microsoft 已承认并接受这一点的设计。然而,没有任何地方列出解决方法(我看到的),所以我不确定是否可以安装正常工作所需的服务,或者是否像尝试在 WinXP 上安装 IIS 6 或 7 一样在风中倾斜。
看来 MSDN 文档是正确的,因为它shouldXP SP3 设计上支持,如果不支持,那只是因为bug在 .NET 3.5 中。
AesCryptoServiceProvider 和 SHA256CryptoServiceProvider 使用相同的加密服务,名为“Microsoft 增强型 RSA 和 AES 加密提供程序”。在 XP 下,服务的名称略有不同:“Microsoft 增强型 RSA 和 AES 加密提供程序(原型)”。 AesCryptoServiceProvider 的构造函数执行简单的检查:
string providerName = "Microsoft Enhanced RSA and AES Cryptographic Provider";
if(Environment.OSVersion.Version.Major == 5 && Environment.OSVersion.Version.Minor == 1)
{
providerName = "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)";
}
SHAxxxCryptoServiceProvider 类的构造函数执行以下操作not检查(原型)名称,这就是它们在 XP 中失败的原因。如果他们这样做了,他们就会成功。
在给定的 PC 上有一个简单的解决方法。转到注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider,找到其名为“Microsoft 增强型 RSA 和 AES 加密提供程序(原型)”的子项,将其导出到 .reg,编辑此 .reg 并从其名称中删除“(原型)”。当您将其导入回来时,原始密钥将被复制为不带(Prototype)的新密钥,且内容相同。从现在开始,SHA256CryptoServiceProvider 将在此 XPSP3 计算机上运行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)