AES加密解密

作者:追风剑情 发布于:2021-10-20 11:36 分类:C#

  1. using System;
  2. using System.Text;
  3. using System.Security.Cryptography;
  4. /// <summary>
  5. /// AES加密/解密
  6. /// </summary>
  7. public sealed class AESCrypto
  8. {
  9. //一个256位的默认key
  10. private const string DEFAULT_KEY = "AbcdefG@1234567*QWERTYU-Mnbvcxz#";
  11.  
  12. //加密
  13. public static string Encrypt(string encryptString, string encryptKey = "")
  14. {
  15. if (string.IsNullOrEmpty(encryptString))
  16. return string.Empty;
  17.  
  18. if (string.IsNullOrEmpty(encryptKey))
  19. encryptKey = DEFAULT_KEY;
  20.  
  21. byte[] toEncryptArray = Encoding.UTF8.GetBytes(encryptString);
  22. RijndaelManaged rm = new RijndaelManaged
  23. {
  24. Key = Encoding.UTF8.GetBytes(encryptKey),
  25. Mode = CipherMode.ECB,//最简单的分块加密
  26. Padding = PaddingMode.PKCS7
  27. };
  28.  
  29. ICryptoTransform cTransform = rm.CreateEncryptor();
  30. Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
  31.  
  32. return Convert.ToBase64String(resultArray, 0, resultArray.Length);
  33. }
  34.  
  35. //解密
  36. public static string Decrypt(string decryptString, string decryptKey = "")
  37. {
  38. if (string.IsNullOrEmpty(decryptString))
  39. return string.Empty;
  40.  
  41. if (string.IsNullOrEmpty(decryptKey))
  42. decryptKey = DEFAULT_KEY;
  43.  
  44. Byte[] toEncryptArray = Convert.FromBase64String(decryptString);
  45. RijndaelManaged rm = new RijndaelManaged
  46. {
  47. Key = Encoding.UTF8.GetBytes(decryptKey),
  48. Mode = CipherMode.ECB,
  49. Padding = PaddingMode.PKCS7
  50. };
  51.  
  52. ICryptoTransform cTransform = rm.CreateDecryptor();
  53. Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
  54.  
  55. return Encoding.UTF8.GetString(resultArray);
  56. }
  57. }

标签: C#

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号