DESEncrypt.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
  70. {
  71. byte[] inputByteArray = Convert.FromBase64String(pToDecrypt);
  72. des.Key = BitConverter.GetBytes(CRC64.ComputeAsUTF8String(sKey));
  73. des.IV = BitConverter.GetBytes(CRC64.ComputeAsUTF8String(sKey));
  74. using (MemoryStream ms = new MemoryStream())
  75. using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write))
  76. {
  77. cs.Write(inputByteArray, 0, inputByteArray.Length);
  78. cs.FlushFinalBlock();
  79. cs.Close();
  80. return Encoding.UTF8.GetString(ms.ToArray());
  81. }
  82. }
  83. }
  84. #endregion
  85. }
  86. }