收藏
回答

如何在程序中加载私钥,privateKey 这个从哪里搞?myssl.com打开证书复制的问题

protected string sign(string message)

{

// 需去除私钥文件中的-----BEGIN/END PRIVATE KEY-----

string privateKey = "MIIEvgIBADANBgkqhkiG...30HBe+GD1tntZgf6I1Y0ZpHZ";

byte[] keyData = Convert.FromBase64String(privateKey);

using (CngKey cngKey = CngKey.Import(keyData, CngKeyBlobFormat.Pkcs8PrivateBlob))

using (RSACng rsa = new RSACng(cngKey))

{

byte[] data = System.Text.Encoding.UTF8.GetBytes(message);

return Convert.ToBase64String(rsa.SignData(data, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1));

}

}

我从https://myssl.com/cert_decode.html 把申请商户api时候得到的三个签名文件的第二个apiclient_cert.pem打开。复制了上面的这些内容,在下面这行代码 using (CngKey cngKey = CngKey.Import(keyData, CngKeyBlobFormat.Pkcs8PrivateBlob)),一直过不去,请问我的privateKey 是不是搞错了?如果没有搞错,从网站这复制的这个privite可以有带换行,能不能去掉?

最后一次编辑于  2021-03-19
回答关注问题邀请回答
收藏

1 个回答

  • 宝来
    宝来
    2021-03-19

    问题解决了,直接记事本打开apiclient_key.pem复制(不包含begin,end那些注释内容),去除换行,然后赋值给privateKey。。

    2021-03-19
    有用 1
    回复
登录 后发表内容
问题标签