Encryption.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System;
  2. using System.IO;
  3. using System.Security.Cryptography;
  4. using System.Text;
  5. namespace UAS_MES_NEW.PublicMethod
  6. {
  7. class Encryption
  8. {
  9. private static string encryptKey = "DBDB";
  10. public static string EncryptStr(string str)
  11. {
  12. DESCryptoServiceProvider descsp = new DESCryptoServiceProvider(); //实例化加/解密类对象
  13. byte[] key = Encoding.Unicode.GetBytes(encryptKey); //定义字节数组,用来存储密钥
  14. byte[] data = Encoding.Unicode.GetBytes(str);//定义字节数组,用来存储要加密的字符串
  15. MemoryStream MStream = new MemoryStream(); //实例化内存流对象
  16. //使用内存流实例化加密流对象
  17. CryptoStream CStream = new CryptoStream(MStream, descsp.CreateEncryptor(key, key), CryptoStreamMode.Write);
  18. CStream.Write(data, 0, data.Length); //向加密流中写入数据
  19. CStream.FlushFinalBlock(); //释放加密流
  20. return Convert.ToBase64String(MStream.ToArray());//返回加密后的字符串
  21. }
  22. public static string DecryptStr(string str)
  23. {
  24. DESCryptoServiceProvider descsp = new DESCryptoServiceProvider(); //实例化加/解密类对象
  25. byte[] key = Encoding.Unicode.GetBytes(encryptKey); //定义字节数组,用来存储密钥
  26. byte[] data = Convert.FromBase64String(str);//定义字节数组,用来存储要解密的字符串
  27. MemoryStream MStream = new MemoryStream(); //实例化内存流对象
  28. //使用内存流实例化解密流对象
  29. CryptoStream CStream = new CryptoStream(MStream, descsp.CreateDecryptor(key, key), CryptoStreamMode.Write);
  30. CStream.Write(data, 0, data.Length); //向解密流中写入数据
  31. CStream.FlushFinalBlock(); //释放解密流
  32. return Encoding.Unicode.GetString(MStream.ToArray()); //返回解密后的字符串
  33. }
  34. }
  35. }