/SocketServerCommonLib/HelpCommonLib/DESEncrypt.cs

https://github.com/yuzhengyang/MySocket · C# · 109 lines · 69 code · 6 blank · 34 comment · 1 complexity · a8982c3de773d7ce49f59855084d83b2 MD5 · raw file

  1. /********************************************************************
  2. * * 使本项目源码前请仔细阅读以下协议内容,如果你同意以下协议才能使用本项目所有的功能,
  3. * * 否则如果你违反了以下协议,有可能陷入法律纠纷和赔偿,作者保留追究法律责任的权利。
  4. * *
  5. * * Copyright (C) 2014-? cskin Corporation All rights reserved.
  6. * * 作者: Amos Li QQ:443061626 .Net项目技术组群:Amos Li 出品
  7. * * 请保留以上版权信息,否则作者将保留追究法律责任。
  8. * * 创建时间:2014-08-05
  9. ********************************************************************/
  10. using System;
  11. using System.Text;
  12. using System.Security.Cryptography;
  13. namespace HelpCommonLib
  14. {
  15. /// <summary>
  16. /// DES加密 / 解密 8密钥
  17. /// </summary>
  18. public class DESEncrypt
  19. {
  20. /// <summary>
  21. /// 加密
  22. /// </summary>
  23. /// <param name="Text">字符串</param>
  24. /// <returns>string</returns>
  25. public static string Encrypt(string Text)
  26. {
  27. return Encrypt(Text, "Amos..Li");
  28. }
  29. /// <summary>
  30. /// 加密
  31. /// </summary>
  32. /// <param name="Text">字符串</param>
  33. /// <param name="sKey">密钥</param>
  34. /// <returns>string</returns>
  35. public static string Encrypt(string Text, string sKey)
  36. {
  37. try
  38. {
  39. DESCryptoServiceProvider des = new DESCryptoServiceProvider();
  40. byte[] inputByteArray;
  41. inputByteArray = Encoding.Default.GetBytes(Text);
  42. des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
  43. des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
  44. System.IO.MemoryStream ms = new System.IO.MemoryStream();
  45. CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
  46. cs.Write(inputByteArray, 0, inputByteArray.Length);
  47. cs.FlushFinalBlock();
  48. StringBuilder ret = new StringBuilder();
  49. foreach (byte b in ms.ToArray())
  50. {
  51. ret.AppendFormat("{0:X2}", b);
  52. }
  53. return ret.ToString();
  54. }
  55. catch
  56. {
  57. throw new Exception("Encrypt Error!");
  58. }
  59. }
  60. /// <summary>
  61. /// 加密
  62. /// </summary>
  63. /// <param name="Text">字符串</param>
  64. /// <returns>string</returns>
  65. public static string Decrypt(string Text)
  66. {
  67. return Decrypt(Text, "Amos..Li");
  68. }
  69. /// <summary>
  70. /// 解密
  71. /// </summary>
  72. /// <param name="Text">字符串</param>
  73. /// <param name="sKey">密钥</param>
  74. /// <returns>string</returns>
  75. public static string Decrypt(string Text, string sKey)
  76. {
  77. try
  78. {
  79. DESCryptoServiceProvider des = new DESCryptoServiceProvider();
  80. int len;
  81. len = Text.Length / 2;
  82. byte[] inputByteArray = new byte[len];
  83. int x, i;
  84. for (x = 0; x < len; x++)
  85. {
  86. i = Convert.ToInt32(Text.Substring(x * 2, 2), 16);
  87. inputByteArray[x] = (byte)i;
  88. }
  89. des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
  90. des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
  91. System.IO.MemoryStream ms = new System.IO.MemoryStream();
  92. CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
  93. cs.Write(inputByteArray, 0, inputByteArray.Length);
  94. cs.FlushFinalBlock();
  95. return Encoding.Default.GetString(ms.ToArray());
  96. }
  97. catch
  98. {
  99. throw new Exception("Decrypt Error!");
  100. }
  101. }
  102. }
  103. }