在AzureFunction上使用RSACryptoServiceProvider

时间:2019-03-26 11:54:26

标签: c# azure-functions

我要将现有的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";
    }

1 个答案:

答案 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);

看看是否有帮助。