MD5Encrypt.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System.Security.Cryptography;
  2. using System.Text;
  3. namespace WS
  4. {
  5. /// <summary>MD5加密</summary>
  6. public class MD5Encrypt
  7. {
  8. /// <summary>16位MD5加密</summary>
  9. public static string Encrypt16(string str)
  10. {
  11. if (string.IsNullOrEmpty(str))
  12. return null;
  13. using (var md5 = MD5.Create())
  14. {
  15. byte[] buffer = md5.ComputeHash(Encoding.UTF8.GetBytes(str));
  16. return buffer.ToHex();
  17. }
  18. }
  19. /// <summary>32位MD5加密</summary>
  20. public static string Encrypt32(string str)
  21. {
  22. if (string.IsNullOrEmpty(str))
  23. return null;
  24. using (var md5 = MD5.Create())
  25. {
  26. string pwd = string.Empty;
  27. byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(str));
  28. foreach (var item in s)
  29. {
  30. pwd = string.Concat(pwd, item.ToString("X"));
  31. }
  32. return pwd;
  33. }
  34. }
  35. /// <summary>64位MD5加密</summary>
  36. public static string Encrypt64(string str)
  37. {
  38. if (string.IsNullOrEmpty(str))
  39. return null;
  40. using (var md5 = MD5.Create())
  41. {
  42. byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(str));
  43. return s.ToBase64();
  44. }
  45. }
  46. /// <summary>MD5加密</summary>
  47. /// <param name="sourceString">值</param>
  48. /// <param name="isletter">是否小写</param>
  49. public static string GetMD5(string sourceString, bool isletter = false)
  50. {
  51. if (string.IsNullOrEmpty(sourceString)) return null;
  52. MD5 md5 = MD5.Create();
  53. byte[] source = md5.ComputeHash(Encoding.UTF8.GetBytes(sourceString));
  54. StringBuilder sBuilder = new StringBuilder();
  55. for (int i = 0; i < source.Length; i++)
  56. {
  57. if (!isletter)
  58. sBuilder.Append(source[i].ToString("X2"));
  59. else
  60. sBuilder.Append(source[i].ToString("x2"));
  61. }
  62. return sBuilder.ToString();
  63. }
  64. }
  65. }