很多时候我们得到的私钥只是一个字符串,要是查询 .Net Core 的文档,我们看不到如何能够让 RSA 使用这种形式的私钥。下面的示例代码能解决这个问题:
string GenerateSignature(string md5, string key)
{
using RSA rsa = RSA.Create();
rsa.ImportRSAPrivateKey(Convert.FromBase64String(key), out _);
var buf = rsa.Encrypt(Encoding.UTF8.GetBytes(md5), RSAEncryptionPadding.Pkcs1);
return Convert.ToBase64String(buf);
}
这里的 key 形式如下:
var eccPem = @"MHcCAQEEIP7n5rwD8HN7VUqcyYD5p+5jBNZQGkQEzoZ76tjXd2TmoAoGCCqGSM49
AwEHoUQDQgAEcH8RG+kV/n8Is+9LKRHS03yv4rXuWRn8rG2pTP2ZZ1I1mfgsJPmh
HCpBEdhlqGehYsNz3DpUM2PHRhzHZJB4Rg==";
参考链接:
https://www.scottbrady91.com/C-Sharp/PEM-Loading-in-dotnet-core-and-dotnet