冰楓論壇

標題: [C#] MD5/SHA/SHA256/SHA384/SHA512等加密方法 [打印本頁]

作者: whitefox    時間: 2023-5-29 09:26
標題: [C#] MD5/SHA/SHA256/SHA384/SHA512等加密方法
本帖最後由 whitefox 於 2023-5-29 13:29 編輯

這裡透過System.Security.Cryptography.HashAlgorithm來實現各種Hash加密演算法
這篇只有加密沒有解密!
PS: 輸出文字前只要加 $ 就可以了
  1. using System;
  2. using System.Security.Cryptography;
  3. using System.Text;

  4. namespace ConsoleApp
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             string text = "~沒加密的明文~";
  11.             string[] encryptTypes = new[] { "md5", "sha1", "sha256", "sha384", "sha512" };
  12.             foreach (string encryptType in encryptTypes)
  13.             {
  14.                 string encryptText = Encrypt(text, encryptType);
  15.                 Console.WriteLine($@"【{text}】經【{encryptType}】加密後:{encryptText}");
  16.             }
  17.         }
  18.         /// <summary>
  19.         /// 加密
  20.         /// </summary>
  21.         /// <param name="value">加密字串</param>
  22.         /// <param name="encryptType">加密方式</param>
  23.         /// <returns></returns>
  24.         public static string Encrypt(string value, string encryptType)
  25.         {
  26.             if (string.IsNullOrEmpty(value)) return value;

  27.             using (var hashAlgorithm = HashAlgorithm.Create(encryptType))
  28.             {
  29.                 byte[] buffer = System.Text.Encoding.UTF8.GetBytes(value);
  30.                 buffer = hashAlgorithm.ComputeHash(buffer);
  31.                 hashAlgorithm.Clear();

  32.                 //使用hex格式輸出
  33.                 StringBuilder result = new StringBuilder();
  34.                 foreach (byte b in buffer)
  35.                 {
  36.                     result.AppendFormat("{0:x2}", b);
  37.                 }
  38.             }
  39.         }
  40.     }
  41. }
複製代碼





歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓