using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Engines;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.OpenSsl;
public static void Main()
string key = @"-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA1d22OTGqObdaC1UZUu93fMI+MnpSTho8GNgP1ANjDT4KtcmRpe7pBCVCtBNmUJU3kLimXRLtbZDnrrpdaHVadNPdhJrd3G6Ofx3KHkC+dSgtQhEXkgs2lmrG8pnM/1Mn69pAQIxfitSw19gxIfdgtkQTl2Lh4FJMDFyC1FwneSzmaOnAjGDc3kFyUg5EMRgbD7/HgU4ULUDLvlOBi6tjpRrbDBnf+G5fcFmo8Aw5f1Hw/KR6KVcirR0RKrJyOhMgFfRZsaS9Ngj4GlCt0Kzl8VCQAdGEQrXeFShxX7ffrQa6TUJ26pZVFw5WtskprQefU5LWfOkb9JErsi6kcVyu7QIDAQABAoIBAQCf0PSxPMnmI3voaAlqjoSN+GGeOwZyUuyB7EO3vWgxpyE9w4lRpH0Amg+EndKheUByp2m6t8AxVk2rppzSyI92KjSpOUl9xig6GbrGbL9msUVQz5D7k+GQ+e39sK0eR7fXadsF4WAsUNBuG6JrrX7Z9XlmcYA1r4og2qjxpIPi6iqqS2DCaN4+Y/PgsouBsnWtpmSnPUihwM9Zn76CQ7a2FJgVF2eif1eZ8I/fzf5bUYAgpSvCbR//0Z3T78XDmbBuKFahpqKyreB2fmh9tlMZRQjuy6jlfU9SOHBRnyAoqpJU72fmFcLZEBaYT+jTCTWkQVuxMn3voV/jTDh1s6ABAoGBAPPdqA43ZIUwWGIORjUuHrMKZvSRi7v9IZdWFygpNiUvKrWcsNdigfmjKgisZfuGR+lh58w6I8P1k/mwk11VNC38KU2N3Z5yvkzlIYxHhnBjixmhjfx772VB7mmmVknDGWi9QeKkGlZ4dMnFCebHZcPF+nuQ4YWCXbhoXSJhbyQBAoGBAOCB66Z89I+YEeMWXWPZTXwig8UDVz+9aEQAyFBMsMRXqlcrRTZoiQQzqRPGP36AcmvKFtj8/E3D5Q/hAaoFSxD2nBI0FIto7iE6GofKdJTmCcgcQ7MCqGEt7nDtf/piA6z1ZEI9xwrzmcWbE5I15uVSB8z6XKEb7GILmlnq0FrtAoGAMZn6Hrohlf2ZXIhuu05gLCaHfmNEOr5n4LJAD4kiXDnVxA7U4VpF+ZK4b/8w1xIe+ldRoHaK48bFjFnf/3HfJSNO+1lJpHrOPjG0uyWpMJ7uog38JUjIDp50ccTFdEdcmbM0/XZHbSMfDhMnymrwRfu00QFM/azghyujFeUfiAECgYBVlHDVuBAppJg87kuPQkhtJ2L/eLSLkZHrSjkRkwpW7ev66n2prdN9DIxJA2s0t5XmTNTExjsPEbuBgA34V6gzwS3hKoUiV09ezx1J4fzqvX3BEDUmSb8RvEaGOaJtOWuZRLmBHrd/DzjwwJqHQ5DOnaRnmJAywcgr36xo1j+ySQKBgQDEwVzruJYXu6MSoiVd0NKeZ2+A1zIdSBPHTiL2c2ofEYFc+OFHxu4bMWbINzN4nn7MM3zSB6WollBrgj2HoSHHoMQGb4QZEKj6Orv3Tg9AbzgbWDiPZ12mboEpaJLaqQFbJbv1aIJoCFL890NMBLpad9xvyrwBTSK4dHOJyTrqGg==
-----END RSA PRIVATE KEY-----";
RSADecryptString("", key);
public static string RSADecryptString(string inputString, string pK)
TextReader textReader = new StringReader(pK);
PemReader pemReader = new PemReader(textReader);
object privateKeyObject = pemReader.ReadObject();
AsymmetricCipherKeyPair keyPair = (AsymmetricCipherKeyPair)privateKeyObject;
Console.WriteLine(keyPair.ToString());
RsaKeyParameters privateKey = (RsaKeyParameters)keyPair.Private;
IAsymmetricBlockCipher cipher = new RsaEngine();
Console.WriteLine("privateKey: " + privateKey.ToString());
Console.WriteLine("Modulus: " + privateKey.Modulus);
Console.WriteLine("Exponent: " + privateKey.Exponent);
cipher.Init(false, keyPair.Private);
byte[] bytesl = Convert.FromBase64String(inputString);
byte[] deciphered = cipher.ProcessBlock(bytesl, 0, bytesl.Length);
string decipheredText = Encoding.UTF8.GetString(deciphered);