DESEncrypt.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. using LJLib.Tools.Encry;
  2. using System;
  3. using System.IO;
  4. using System.Security.Cryptography;
  5. using System.Text;
  6. namespace LJLib.Tools.DEncrypt
  7. {
  8. /// <summary>
  9. /// DES加密/解密类。
  10. /// Copyright (C) AIFMB
  11. /// </summary>
  12. public class DESEncrypt
  13. {
  14. public DESEncrypt()
  15. {
  16. }
  17. #region ========加密========
  18. /// <summary>
  19. /// 加密
  20. /// </summary>
  21. /// <param name="Text"></param>
  22. /// <returns></returns>
  23. public static string Encrypt(string Text)
  24. {
  25. return Encrypt(Text,"C6F87DF747B948BC90C5864E160743DD");
  26. }
  27. /// <summary>
  28. /// 加密数据
  29. /// </summary>
  30. /// <param name="Text"></param>
  31. /// <param name="sKey"></param>
  32. /// <returns></returns>
  33. public static string Encrypt(string pToEncrypt, string sKey)
  34. {
  35. using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
  36. {
  37. byte[] inputByteArray = Encoding.UTF8.GetBytes(pToEncrypt);
  38. des.Key = BitConverter.GetBytes(CRC64.ComputeAsUTF8String(sKey));
  39. des.IV = BitConverter.GetBytes(CRC64.ComputeAsUTF8String(sKey));
  40. using (MemoryStream ms = new MemoryStream())
  41. using (CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write))
  42. {
  43. cs.Write(inputByteArray, 0, inputByteArray.Length);
  44. cs.FlushFinalBlock();
  45. cs.Close();
  46. return Convert.ToBase64String(ms.ToArray());
  47. }
  48. }
  49. }
  50. #endregion
  51. #region ========解密========
  52. /// <summary>
  53. /// 解密
  54. /// </summary>
  55. /// <param name="Text"></param>
  56. /// <returns></returns>
  57. public static string Decrypt(string Text)
  58. {
  59. return Decrypt(Text, "C6F87DF747B948BC90C5864E160743DD");
  60. }
  61. /// <summary>
  62. /// 解密数据
  63. /// </summary>
  64. /// <param name="Text"></param>
  65. /// <param name="sKey"></param>
  66. /// <returns></returns>
  67. public static string Decrypt(string pToDecrypt, string sKey)
  68. {
  69. if (string.IsNullOrEmpty(pToDecrypt))
  70. {
  71. return string.Empty;
  72. }
  73. using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
  74. {
  75. byte[] inputByteArray = Convert.FromBase64String(pToDecrypt);
  76. des.Key = BitConverter.GetBytes(CRC64.ComputeAsUTF8String(sKey));
  77. des.IV = BitConverter.GetBytes(CRC64.ComputeAsUTF8String(sKey));
  78. using (MemoryStream ms = new MemoryStream())
  79. using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write))
  80. {
  81. cs.Write(inputByteArray, 0, inputByteArray.Length);
  82. cs.FlushFinalBlock();
  83. cs.Close();
  84. return Encoding.UTF8.GetString(ms.ToArray());
  85. }
  86. }
  87. }
  88. #endregion
  89. }
  90. }