HashEncode.cs 1.0 KB

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