C# Bouncycastle解密PKCS8
使用Bouncycastle解密字符串时遇到困难。我怀疑这是编码,但我找不到任何用于bouncycastle的PKCS8编码C# Bouncycastle解密PKCS8,c#,encryption,rsa,bouncycastle,C#,Encryption,Rsa,Bouncycastle,使用Bouncycastle解密字符串时遇到困难。我怀疑这是编码,但我找不到任何用于bouncycastle的PKCS8编码 var bytesToDecrypt = Convert.FromBase64String(base64Input); AsymmetricCipherKeyPair keyPair; var decryptEngine = new Pkcs1Encoding(new RsaEngine());
var bytesToDecrypt = Convert.FromBase64String(base64Input);
AsymmetricCipherKeyPair keyPair;
var decryptEngine = new Pkcs1Encoding(new RsaEngine());
using (var txtreader = new StringReader(privateKey))
{
keyPair = (AsymmetricCipherKeyPair)new PemReader(txtreader).ReadObject();
decryptEngine.Init(false, keyPair.Private);
}
var decrypted = Encoding.UTF8.GetString(decryptEngine.ProcessBlock(bytesToDecrypt, 0, bytesToDecrypt.Length));
return decrypted;
这是PKCS8格式的RSA密钥:
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
使用AsymmetricKeyParameter而不是AsymmetricipherKeyPair,如下所示:
AsymmetricKeyParameter akp;
var decryptEngine = new Pkcs1Encoding(new RsaEngine());
using (var txtreader = new StringReader(privateKey))
{
akp = (AsymmetricKeyParameter)new PemReader(txtreader).ReadObject();
decryptEngine.Init(false, akp);
}
使用AsymmetricKeyParameter而不是AsymmetricipherKeyPair,如下所示:
AsymmetricKeyParameter akp;
var decryptEngine = new Pkcs1Encoding(new RsaEngine());
using (var txtreader = new StringReader(privateKey))
{
akp = (AsymmetricKeyParameter)new PemReader(txtreader).ReadObject();
decryptEngine.Init(false, akp);
}