RSA_ECB_PKCS1Padding.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System;
  2. using System.Text;
  3. using Org.BouncyCastle.Crypto;
  4. using Org.BouncyCastle.Security;
  5. namespace Essensoft.AspNetCore.Payment.Security
  6. {
  7. public class RSA_ECB_PKCS1Padding
  8. {
  9. public static byte[] Encrypt(byte[] data, ICipherParameters key)
  10. {
  11. var cipher = CipherUtilities.GetCipher("RSA/ECB/PKCS1Padding");
  12. cipher.Init(true, key);
  13. return cipher.DoFinal(data);
  14. }
  15. public static byte[] Decrypt(byte[] data, ICipherParameters key)
  16. {
  17. var cipher = CipherUtilities.GetCipher("RSA/ECB/PKCS1Padding");
  18. cipher.Init(false, key);
  19. return cipher.DoFinal(data);
  20. }
  21. public static string Encrypt(string data, ICipherParameters key)
  22. {
  23. var cipher = CipherUtilities.GetCipher("RSA/ECB/PKCS1Padding");
  24. cipher.Init(true, key);
  25. return Convert.ToBase64String(cipher.DoFinal(Encoding.UTF8.GetBytes(data)));
  26. }
  27. public static string Decrypt(string data, ICipherParameters key)
  28. {
  29. var cipher = CipherUtilities.GetCipher("RSA/ECB/PKCS1Padding");
  30. cipher.Init(false, key);
  31. return Encoding.UTF8.GetString(cipher.DoFinal(Convert.FromBase64String(data)));
  32. }
  33. }
  34. }