using System; using System.Text; using System.Runtime.Serialization.Json; using System.IO; namespace RSAUtility { class Program { private static String PUBLIC_KEY = @"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzw1Ib0qlD3ynCPLMUAqE2fkzeXuV5YLAyHtd/Gw8gPMeRWea9caentQpK5k4VFHjCP1LPmWlK7tsyi/9KYbRtK9/Gpasja0qSC1M/ZH6pJZZp81DWiGzQ8gAZ8YVp9+sW6eaH4CvDqCBeMSOTw3VS5yq7ArENbgIcSzCC05fZDwIDAQAB"; static void Main(string[] args) { //定义对象 TransactionResultDTO trans = new TransactionResultDTO(); trans.setPartnerRefNo("486595880571"); trans.setMerchantShortCode("8810002"); trans.setMerchant("oway"); trans.setAmount(0.01); trans.setCurrency("MMK"); trans.setFee(0.0); trans.setGoods("bus"); trans.setBackURL(@"http://dev.meemee.online:8080"); //转换Json MemoryStream ms = new MemoryStream(); DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(TransactionResultDTO)); ser.WriteObject(ms, trans); ms.Position = 0; string jsonString; using (StreamReader sr = new StreamReader(ms)) { jsonString = sr.ReadToEnd().Replace("\\", ""); } ms.Close(); Console.WriteLine("Json String:\n" + jsonString +"\n"); //加解密 RSAUtil rsa = new RSAUtil(); //公钥加密 string encryptResult = rsa.EncryptByPublicKey(jsonString, PUBLIC_KEY); Console.WriteLine("Public Key Encrypt Result:\n"+encryptResult+"\n"); string cipherText = @"SkZzWUg0cTJQVkhnUURLMG84UWFrd3hYc2MyMHBOY3RYZlJNb3ZmMkR3dno5THU2VmJvaEhDN1Nkck14ZlZhd3NyN3JTOHY0M3JHVQ0KQVRlbVVHZWtRMVBwTUxlKzhEempiT1BldlJoRVpvMCsrcUJWcFJaWnNuUUd1aVJWZTllMXNSTi9tait1S2R3eHhMZ3U4Z3MzNk1tcA0KNFAwT3c1WDdDTXc5OVhSTGJOWjN3QncyZC9iTXNxTVM5Sjh1RDZOdmJmeHNlN0dkUUI2YWdRWGkyNEpmRytlVzEvNzZrQkdyKzhPVA0Kd1dTUG1FVER0YVZva3IrcE50KzEzZjVISUtGZTJKVDhMZW1RZTNmOE1kYkVGeHVhRGw2SE96WXlNeGRBR2NyMWNQREQ3ZWg4NkQ1Vw0KSDRtQVRMTDczQ1puTVhhMnpnbDd2YnUxWGpqdU1udkNRR3BIWUE9PQ=="; //公钥解密 string plainText = rsa.DecryptByPublicKey(cipherText, PUBLIC_KEY); Console.WriteLine("Public Key Decrypt Result:\n" + plainText+"\n"); } } }