using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Engines;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.OpenSsl;
using Org.BouncyCastle.Crypto.Encodings;
public static void Main()
string key = @"-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAwy9cBwnpRx5HyHl700De5EmBhEEUjM54lidbq1L7Pn2s8k3WY6Trpgzvz8iJlmIMzDdQ6zwhIW48nerXleEEstZuZXN2W5S8Dq4uKhx5L39gg3p+zEfrLHy0YTYwgQBhJ/HbC2NVBELnpXPqh+LjftLHeE3jEsNk9tqnngVabZVA9EVduICrOJYcuGULPqVtFCJuOzBC1SgG2IIM991gjeMIQkR6D3Pz+9lQrVhtz518TR9oc6IVJ/0qyzfteQ8XqMtmpDNHqIkxAlCMhZCqTdkYIFwGV9LpU+RyRxE8ZVkpDh8A9Qq4o/STSrwfYF5okCXcmSLVQSzBbWfqhGYxfQIDAQABAoIBACvumfkfmvkd8KxH474N6N1bSiKZf2WeB3hMjY6HU/Oh1+6F5I5zDXNHkCaljYpisVy5yqXX1+EtbclhlXqvth4Gs7xz+5zrYlSvkcZ6uDAfrHqLdMTIHz/ZJcSHrO0sR7H09weeKQGXiYotCAnj4K6oBKuoZEbR4gTJ/FZOACePvmKn/sStQnxYhdNSD0bjiqhA6AwBcZu+TvAzNBGo6NhnDGcbFD7Y7s/NxSmCLj8X21fLocpO3SCmpXuWsEkUOaiUX9bUTe/IwGDdHiTfMAsBVwZqKuViiI0vgcxid3Kpii1I9MoASN6ThVypTjpTK8NNQ9O5Cb/6nefy0KfkB6ECgYEA+RC5dKox5JiIpWZriU99Ip80WHrJOxYhQAH5IkApITXLP9fUctPHGUWTy4LzjwgY7ud9Iq06hMzwQSDVtwYfpEPFB9LkkfBoVlpU9mo/7kHPvnZnl718B2NP3FaGTLgHTQsW+fOx1NU6+AQwD4MyLczEZVErarwZalBeeuppCAUCgYEAyJ6W5+qKAT0zI+p9f1loBn/EV3Dbav6q9U4kL2j7uRCgu42f69k8ZsT6cbBQkcWFK2aWvSReg7ZkdxXb0dSDJO/qF5uFx9GX2lVHW2nAy7KZz4qpLSp2ks6U2Kc22vh3UFOSjT66zsI0mcwZBOtlkXEnRfEXRW6y61ShBO1MFRkCgYA82Qwl52qXCXjgx7vf6O6OZcy5DQ5ahBaNd63w4zHpLiZAq674eqq6jtgDsTNlrznALAfTT/Tq+tJ7ZtUviKx0SiY5uhkjWlNzPVBifyStRaDGTFEUrjM97tJU50KaPZ9zABGV8SZx88IbU5KWR5wbuloE0qbDxb6Dzay3ZMtSLQKBgQCw0m7JfAQk8W74sf3o18GDMOu58iPCmzHNQhFMpChxxgEVLc+NTYwaPHVM7Q0mXkRwq1wi20Jersy/1UlJGRh53ueh5Ra1trsz2cQqAvzFzOYacemIgIu/+0pf5onH2AU5jF94FJkMEUnRYH2Qw3VjCquFzugm71nNZ2sAb7KGSQKBgAj7CCdTwOuujRLkWMRBFrdruM3fgaRboMPAG8ErlXwgSKy+ADUkwIH9A+DLZwkxI662fS6dG/IdLeo1zkgNTer7O9cN8BbvWFO8thrd699o98m3gPlpIrmMhlC36F5qLQV6ACDEdMTyEtvMF0ZKSlcL5jADdFPOmzrG67TnVlgE
-----END RSA PRIVATE KEY-----";
string inputString = "JfAGKDmTYo0bFVH9i3Y2AZK5OUIwV8yv3BoxEtJePmWVWe7Nw9Nq0bpQ9+NcjThkFkFDbSQxAJvHo29ZfK5lv3eq51X2jCarzubEPu5I4Q2ezNIGvva3+LRWNAeQoatZkVR2xtE63W0c35snosKIG/wnDaXoKe4zxIZS+JVKhm8bU5nDz55YUJC0UfgSqgsaUypz7mtcZzwsVfzVJpA8ca7PgaUSkKS+s5wMiTYTeqroPFTkkRZ4yE/Mc0folJiLxkhrNwqdwG4HrDfKV+ECKbNu1BcqknfAxpkReYJKF+ewFSxYxDcYuOIprtcg5WxJCdC3oB7acxmJsdiD+Q7Ykg==";
RSADecryptString(inputString, 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;
Pkcs1Encoding cipher = new Pkcs1Encoding(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);
Console.WriteLine("DecryptedText: " + decipheredText);