Program.cs 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System;
  2. using System.Text;
  3. using System.Runtime.Serialization.Json;
  4. using System.IO;
  5. namespace RSAUtility
  6. {
  7. class Program
  8. {
  9. private static String PUBLIC_KEY = @"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzw1Ib0qlD3ynCPLMUAqE2fkzeXuV5YLAyHtd/Gw8gPMeRWea9caentQpK5k4VFHjCP1LPmWlK7tsyi/9KYbRtK9/Gpasja0qSC1M/ZH6pJZZp81DWiGzQ8gAZ8YVp9+sW6eaH4CvDqCBeMSOTw3VS5yq7ArENbgIcSzCC05fZDwIDAQAB";
  10. static void Main(string[] args)
  11. {
  12. //定义对象
  13. TransactionResultDTO trans = new TransactionResultDTO();
  14. trans.setPartnerRefNo("486595880571");
  15. trans.setMerchantShortCode("8810002");
  16. trans.setMerchant("oway");
  17. trans.setAmount(0.01);
  18. trans.setCurrency("MMK");
  19. trans.setFee(0.0);
  20. trans.setGoods("bus");
  21. trans.setBackURL(@"http://dev.meemee.online:8080");
  22. //转换Json
  23. MemoryStream ms = new MemoryStream();
  24. DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(TransactionResultDTO));
  25. ser.WriteObject(ms, trans);
  26. ms.Position = 0;
  27. string jsonString;
  28. using (StreamReader sr = new StreamReader(ms))
  29. {
  30. jsonString = sr.ReadToEnd().Replace("\\", "");
  31. }
  32. ms.Close();
  33. Console.WriteLine("Json String:\n" + jsonString +"\n");
  34. //加解密
  35. RSAUtil rsa = new RSAUtil();
  36. //公钥加密
  37. string encryptResult = rsa.EncryptByPublicKey(jsonString, PUBLIC_KEY);
  38. Console.WriteLine("Public Key Encrypt Result:\n"+encryptResult+"\n");
  39. string cipherText = @"SkZzWUg0cTJQVkhnUURLMG84UWFrd3hYc2MyMHBOY3RYZlJNb3ZmMkR3dno5THU2VmJvaEhDN1Nkck14ZlZhd3NyN3JTOHY0M3JHVQ0KQVRlbVVHZWtRMVBwTUxlKzhEempiT1BldlJoRVpvMCsrcUJWcFJaWnNuUUd1aVJWZTllMXNSTi9tait1S2R3eHhMZ3U4Z3MzNk1tcA0KNFAwT3c1WDdDTXc5OVhSTGJOWjN3QncyZC9iTXNxTVM5Sjh1RDZOdmJmeHNlN0dkUUI2YWdRWGkyNEpmRytlVzEvNzZrQkdyKzhPVA0Kd1dTUG1FVER0YVZva3IrcE50KzEzZjVISUtGZTJKVDhMZW1RZTNmOE1kYkVGeHVhRGw2SE96WXlNeGRBR2NyMWNQREQ3ZWg4NkQ1Vw0KSDRtQVRMTDczQ1puTVhhMnpnbDd2YnUxWGpqdU1udkNRR3BIWUE9PQ==";
  40. //公钥解密
  41. string plainText = rsa.DecryptByPublicKey(cipherText, PUBLIC_KEY);
  42. Console.WriteLine("Public Key Decrypt Result:\n" + plainText+"\n");
  43. }
  44. }
  45. }