带有rsa证书的最佳实践

时间:2020-10-13 08:02:21

标签: c# rsa x509certificate sign

我有一个Web服务,需要对所有请求进行正文签名。所以我想知道这样做的最佳实践是什么?我正在使用此方法来对字符串进行签名,但是我猜它不是最好的方法。因为我的私钥从未处理过:

using (var provider = new RSACryptoServiceProvider())
{
    provider.ImportParameters(ProjectValues.PrivateKey.ExportParameters(true));
    encryptByteList = provider.SignData(content, CryptoConfig.MapNameToOID("SHA256"));
}

在第一次加载项目时,我已经阅读了一次证书和私钥。像这样:

Certificate = new X509Certificate2("my pfx path", "***", X509KeyStorageFlags.Exportable);
PrivateKey = (RSACryptoServiceProvider)Certificate.PrivateKey;

然后我找到了这种方法:

var cert = new X509Certificate2("my pfx path", "***", X509KeyStorageFlags.Exportable);
using (var rsa = cert.GetRSAPrivateKey())
{
    encryptByteList = rsa.SignData(content, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
}

但是如果我在每个请求中都从文件中读取证书,则此方法有效。显然这不是一种有效的方法

0 个答案:

没有答案