C# 如何使用字符串私钥创建RSACryptServiceProvider
我只有私钥。我想用它对RSA算法中的数据进行签名。 我知道如何使用证书签署数据。但我没有任何方法使用字符串格式的私钥来创建和使用RSACryptServiceProvider 我的代码看起来像这样C# 如何使用字符串私钥创建RSACryptServiceProvider,c#,.net,encryption,rsa,x509certificate,C#,.net,Encryption,Rsa,X509certificate,我只有私钥。我想用它对RSA算法中的数据进行签名。 我知道如何使用证书签署数据。但我没有任何方法使用字符串格式的私钥来创建和使用RSACryptServiceProvider 我的代码看起来像这样 string privateKey = "-----BEGIN PRIVATE KEY-----\nsometext\nsometext\nsometext\.....\n-----END PRIVATE KEY-----\n" var rasAlg = new RSACryptoServicePro
string privateKey = "-----BEGIN PRIVATE KEY-----\nsometext\nsometext\nsometext\.....\n-----END PRIVATE KEY-----\n"
var rasAlg = new RSACryptoServiceProvider()// how can i use my private key here.
var signature = rasAlg.SignData(bytesArray, new SHA256CryptoServiceProvider());
编辑
如果有人能帮我创建X509Certificate,那也没问题。我发现bouncy castle库很有用。我用bouncy castle pem阅读器从字符串中读取它
AsymmetricKeyParameter keyPair;
using (var reader = new StringReader(privateKey))
keyPair = (AsymmetricKeyParameter)new PemReader(reader).ReadObject();
一种方法是RSA.FromXmlStringPrivateKey将密钥存储为XML@Plutonix当我将其导出到XMLString时,它会输出模数、指数、P、Q、DP、DQ、InverseQ、D。那么我如何使用私钥呢?请您解释一下模数、P、Q、DP、DQ、InverseQ和D是私钥。我们大多数图书馆也需要指数。公钥就是模和指数。