HashEncode.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Masuit.Tools.Win32;
  2. using System;
  3. using System.Security.Cryptography;
  4. using System.Text;
  5. namespace Masuit.Tools.Security
  6. {
  7. /// <summary>
  8. /// 得到随机安全码(哈希加密)。
  9. /// </summary>
  10. public static class HashEncode
  11. {
  12. /// <summary>
  13. /// 得到随机哈希加密字符串
  14. /// </summary>
  15. /// <returns>随机哈希加密字符串</returns>
  16. public static string GetSecurity(this Random r) => HashEncoding(r.StrictNext().ToString());
  17. /// <summary>
  18. /// 哈希加密一个字符串
  19. /// </summary>
  20. /// <param name="security">需要加密的字符串</param>
  21. /// <returns>加密后的数据</returns>
  22. public static string HashEncoding(this string security)
  23. {
  24. var code = new UnicodeEncoding();
  25. byte[] message = code.GetBytes(security);
  26. var arithmetic = new SHA512Managed();
  27. var value = arithmetic.ComputeHash(message);
  28. var sb = new StringBuilder();
  29. foreach (byte o in value)
  30. {
  31. sb.Append((int)o + "O");
  32. }
  33. return sb.ToString();
  34. }
  35. }
  36. }