DEncrypt.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. using System;
  2. using System.Security.Cryptography;
  3. using System.Text;
  4. namespace Ant.Service.Utilities
  5. {
  6. /// <summary>
  7. /// Encrypt 的摘要说明。
  8. /// </summary>
  9. public class DEncrypt
  10. {
  11. /// <summary>
  12. /// 构造方法
  13. /// </summary>
  14. public DEncrypt()
  15. {
  16. }
  17. #region 使用 缺省密钥字符串 加密/解密string
  18. /// <summary>
  19. /// 使用缺省密钥字符串加密string
  20. /// </summary>
  21. /// <param name="original">明文</param>
  22. /// <returns>密文</returns>
  23. public static string Encrypt(string original)
  24. {
  25. return Encrypt(original,"MATICSOFT");
  26. }
  27. /// <summary>
  28. /// 使用缺省密钥字符串解密string
  29. /// </summary>
  30. /// <param name="original">密文</param>
  31. /// <returns>明文</returns>
  32. public static string Decrypt(string original)
  33. {
  34. return Decrypt(original,"MATICSOFT",System.Text.Encoding.Default);
  35. }
  36. #endregion
  37. #region 使用 给定密钥字符串 加密/解密string
  38. /// <summary>
  39. /// 使用给定密钥字符串加密string
  40. /// </summary>
  41. /// <param name="original">原始文字</param>
  42. /// <param name="key">密钥</param>
  43. /// <param name="encoding">字符编码方案</param>
  44. /// <returns>密文</returns>
  45. public static string Encrypt(string original, string key)
  46. {
  47. byte[] buff = System.Text.Encoding.Default.GetBytes(original);
  48. byte[] kb = System.Text.Encoding.Default.GetBytes(key);
  49. return Convert.ToBase64String(Encrypt(buff,kb));
  50. }
  51. /// <summary>
  52. /// 使用给定密钥字符串解密string
  53. /// </summary>
  54. /// <param name="original">密文</param>
  55. /// <param name="key">密钥</param>
  56. /// <returns>明文</returns>
  57. public static string Decrypt(string original, string key)
  58. {
  59. return Decrypt(original,key,System.Text.Encoding.Default);
  60. }
  61. /// <summary>
  62. /// 使用给定密钥字符串解密string,返回指定编码方式明文
  63. /// </summary>
  64. /// <param name="encrypted">密文</param>
  65. /// <param name="key">密钥</param>
  66. /// <param name="encoding">字符编码方案</param>
  67. /// <returns>明文</returns>
  68. public static string Decrypt(string encrypted, string key,Encoding encoding)
  69. {
  70. byte[] buff = Convert.FromBase64String(encrypted);
  71. byte[] kb = System.Text.Encoding.Default.GetBytes(key);
  72. return encoding.GetString(Decrypt(buff,kb));
  73. }
  74. #endregion
  75. #region 使用 缺省密钥字符串 加密/解密/byte[]
  76. /// <summary>
  77. /// 使用缺省密钥字符串解密byte[]
  78. /// </summary>
  79. /// <param name="encrypted">密文</param>
  80. /// <param name="key">密钥</param>
  81. /// <returns>明文</returns>
  82. public static byte[] Decrypt(byte[] encrypted)
  83. {
  84. byte[] key = System.Text.Encoding.Default.GetBytes("MATICSOFT");
  85. return Decrypt(encrypted,key);
  86. }
  87. /// <summary>
  88. /// 使用缺省密钥字符串加密
  89. /// </summary>
  90. /// <param name="original">原始数据</param>
  91. /// <param name="key">密钥</param>
  92. /// <returns>密文</returns>
  93. public static byte[] Encrypt(byte[] original)
  94. {
  95. byte[] key = System.Text.Encoding.Default.GetBytes("MATICSOFT");
  96. return Encrypt(original,key);
  97. }
  98. #endregion
  99. #region 使用 给定密钥 加密/解密/byte[]
  100. /// <summary>
  101. /// 生成MD5摘要
  102. /// </summary>
  103. /// <param name="original">数据源</param>
  104. /// <returns>摘要</returns>
  105. public static byte[] MakeMD5(byte[] original)
  106. {
  107. MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();
  108. byte[] keyhash = hashmd5.ComputeHash(original);
  109. hashmd5 = null;
  110. return keyhash;
  111. }
  112. /// <summary>
  113. /// 使用给定密钥加密
  114. /// </summary>
  115. /// <param name="original">明文</param>
  116. /// <param name="key">密钥</param>
  117. /// <returns>密文</returns>
  118. public static byte[] Encrypt(byte[] original, byte[] key)
  119. {
  120. TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
  121. des.Key = MakeMD5(key);
  122. des.Mode = CipherMode.ECB;
  123. return des.CreateEncryptor().TransformFinalBlock(original, 0, original.Length);
  124. }
  125. /// <summary>
  126. /// 使用给定密钥解密数据
  127. /// </summary>
  128. /// <param name="encrypted">密文</param>
  129. /// <param name="key">密钥</param>
  130. /// <returns>明文</returns>
  131. public static byte[] Decrypt(byte[] encrypted, byte[] key)
  132. {
  133. TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
  134. des.Key = MakeMD5(key);
  135. des.Mode = CipherMode.ECB;
  136. return des.CreateDecryptor().TransformFinalBlock(encrypted, 0, encrypted.Length);
  137. }
  138. #endregion
  139. }
  140. }