【发布时间】:2020-06-25 08:46:54
【问题描述】:
在 .net core 3.1 中,我使用 ImportPkcs8PrivateKey 和 ImportRSAPrivateKey 进行一些 RSA 私钥导入,按照以下功能
private RSA RsaKeyAsPerContent()
{
//https://csfieldguide.org.nz/en/interactives/rsa-key-generator/
//https://travistidwell.com/jsencrypt/demo/
RSA rSA = RSA.Create();
string privateKeyContent = "...."
bool isPkcsprivateKey = privateKeyContent.Contains("BEGIN PRIVATE KEY");
if (isPkcsprivateKey)
{
var privateKey = privateKeyContent.Replace("-----BEGIN PRIVATE KEY-----", string.Empty).Replace("-----END PRIVATE KEY-----", string.Empty);
privateKey = privateKey.Replace(Environment.NewLine, string.Empty);
var privateKeyBytes = Convert.FromBase64String(privateKey);
rSA.ImportPkcs8PrivateKey(privateKeyBytes, out int _);
}
else
{
var privateKey = privateKeyContent.Replace("-----BEGIN RSA PRIVATE KEY-----", string.Empty).Replace("-----END RSA PRIVATE KEY-----", string.Empty);
privateKey = privateKey.Replace(Environment.NewLine, string.Empty);
var privateKeyBytes = Convert.FromBase64String(privateKey);
rSA.ImportRSAPrivateKey(privateKeyBytes, out int _);
}
return rSA;
}
现在我需要在传统的 .net 框架版本 4.6/4.7 中具有相同的导入功能,但它不可用 知道如何在 .net 框架中做到这一点
【问题讨论】:
-
@Topaco 请检查我的回答
-
我不想使用第 3 方库。因此,我使用了我拥有的 PEM 文件和密钥,并使用 openssl 将这对转换为 pfx 文件,该文件可以轻松地与现有的 .NET 框架一起使用。