HashEncode.cs 1.1 KB

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