我要将现有的DLL移至Azure函数以生成并签名哈希。
尽管当我使用rsaPrivate.FromXmlString(privKey); azure函数检索错误500。没有它,我将能够检索散列。似乎在天蓝色下,我无法以某种方式定义RSACryptoServiceProvider类型。
有人知道我想念什么吗?
string sHash = String.Empty;
string privKey = "MyXMLkey";
RSACryptoServiceProvider rsaPrivate = new RSACryptoServiceProvider();
try
{
//rsaPrivate.FromXmlString(privKey); //Troubled line
SHA1 sha1 = SHA1.Create();
byte[] rawSecret = Encoding.UTF8.GetBytes(name);
byte[] signedSecretData = rsaPrivate.SignData(rawSecret, SHA1.Create());
sHash = Convert.ToBase64String(signedSecretData);
}
catch
{
sHash="Couldnt sign or generate hash";
}
答案 0 :(得分:1)
您需要在初始化RSACryptoServiceProvider类时指定在计算机存储区中创建密钥。
System.Security.Cryptography.CspParameters csp = new CspParameters();
csp.KeyContainerName = "MyKeyName";
csp.Flags = CspProviderFlags.UseMachineKeyStore;
System.Security.Cryptography.RSACryptoServiceProvider key = new RSACryptoServiceProvider(csp);
看看是否有帮助。