我们在Windows XP机器上向冰川上传数据时遇到问题。以下是错误消息"此平台不支持指定的加密算法。"
线路(适用于净低层冰川API)处出现错误
client.UploadMultipartPart(uploadMPUrequest);
而且在使用高级API时,下面的代码是
string archiveId = manager.Upload(vaultName,"name",archiveToUpload).ArchiveId;
通过阅读一些链接,我们了解到WindowsXP不支持密码学。但我们有很多客户端运行XP机器,有没有解决方案或任何热修复。
我在搜索错误时遇到了一个热修复程序,但它适用于windows服务器机器,不适用于windows XP。
假设您的加密算法是SHA256。
如果您可以访问代码,您可以尝试使用SHA256Managed而不是SHA256CryptoServiceProvider。
该算法将由框架运行,而不是尝试由平台运行。
如果你需要性能,你可以尝试平台算法然后框架实现一个(Thomas Dufour解决方案):
SHA256 hash;
try
{
hash = new SHA256Cng( );
}
catch ( PlatformNotSupportedException )
{
hash = SHA256.Create( );
}
这里描述的另一个解决方案是重命名注册表中的加密服务。
在HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptographyDefaultsProvider
中,找到名为"Microsoft Enhanced RSA and AES Cryptographic Provider(Prototype)"的子密钥,并将其重命名为"Microsoft增强型RSA和AES加密提供程序"。
该系统必须是XP SP3。
我使用了AWSDK版本2.3,这解决了问题,但使用更高版本导致代码中出现了许多名称空间和使用类名的更改。