AesHelper.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System.Linq;
  2. using System.Text;
  3. using System.Security.Cryptography;
  4. namespace HKCarPlateRecognize_App
  5. {
  6. public class AesHelper
  7. {
  8. public static string EncodeAES(string text, string key)
  9. {
  10. byte[] keyArray = null;
  11. using (var sha1 = new SHA1CryptoServiceProvider())
  12. {
  13. byte[] hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(key));
  14. var rd = sha1.ComputeHash(hash);
  15. keyArray = rd.Take(16).ToArray();
  16. }
  17. RijndaelManaged rijndaelCipher = new RijndaelManaged();
  18. rijndaelCipher.Mode = CipherMode.ECB;
  19. rijndaelCipher.Padding = PaddingMode.PKCS7;
  20. rijndaelCipher.KeySize = 128;
  21. rijndaelCipher.Key = keyArray;
  22. ICryptoTransform transform = rijndaelCipher.CreateEncryptor();
  23. byte[] plainText = Encoding.UTF8.GetBytes(text);
  24. byte[] cipherBytes = transform.TransformFinalBlock(plainText, 0, plainText.Length);
  25. return ByteUtil.BytesToHexString(cipherBytes);
  26. }
  27. public static string DecodeAES(string ciphertext, string key)
  28. {
  29. byte[] keyArray = null;
  30. using (var sha1 = new SHA1CryptoServiceProvider())
  31. {
  32. byte[] hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(key));
  33. var rd = sha1.ComputeHash(hash);
  34. keyArray = rd.Take(16).ToArray();
  35. }
  36. byte[] text = ByteUtil.HexStringToBytes(ciphertext);
  37. RijndaelManaged rijndaelCipher = new RijndaelManaged();
  38. rijndaelCipher.Mode = CipherMode.ECB;
  39. rijndaelCipher.Padding = PaddingMode.PKCS7;
  40. rijndaelCipher.KeySize = 128;
  41. rijndaelCipher.BlockSize = 128;
  42. byte[] encryptedData = text;
  43. rijndaelCipher.Key = keyArray;
  44. ICryptoTransform transform = rijndaelCipher.CreateDecryptor();
  45. byte[] plainText = transform.TransformFinalBlock(encryptedData, 0, encryptedData.Length);
  46. return Encoding.UTF8.GetString(plainText);
  47. }
  48. }
  49. }