C#中兩個常用的加密方法:
個人Mark,僅作參考。
public static class Extends { /// <summary> /// HMAC SHA256 /// </summary> /// <param name="str"></param> /// <returns></returns> public static string Sha256(this string str) { byte[] sha256Data = Encoding.UTF8.GetBytes(str); SHA256Managed sha256 = new SHA256Managed(); byte[] buffer = sha256.ComputeHash(sha256Data); // 可以根據需要處理加密後的字節數組,比如使用Base64.這裏使用BitConverter轉爲64位字符。 return BitConverter.ToString(buffer).Replace("-", "").ToLower(); } /// <summary> /// MD5 /// </summary> /// <param name="str"></param> /// <returns></returns> public static string Md5(this string str) { var md5 = MD5.Create();// 加密後是一個字節類型的數組 byte[] buffer = md5.ComputeHash(Encoding.UTF8.GetBytes(str)); // 將得到的字符串使用十六進制類型格式。格式後的字符是小寫的字母,如果使用大寫(X)則格式後的字符是大寫字符.
// X2和x2表示不省略首位爲0的十六進制數字;比如:ox0A, 使用 X== 0xA, 使用 X2==0x0A 。標準MD5是使用 x2 或者 X2,否則可能位數丟失。
return buffer.Aggregate(string.Empty, (current, t) => current + t.ToString("x2")); } }