WEB上常用的兩種加密方式:MD5和SHA512。
這裡分享兩個使用的方法
都需要用到.net的以下兩個空間
using System.Text
using System.Security.Cryptography
1 MD5
(不帶密鑰,任何文本使用MD5加密後的結果是一緻的,有安全隐患)
public string PWDByMd5(string sText)
{
string pwd = "";
MD5 md5 = MD5.Create();
// 加密後是一個位元組類型的數組
byte[] s = md5.ComputeHash(Encoding.Unicode.GetBytes(sText));
// 通過使用循環,将位元組類型的數組轉換為字元串,此字元串是正常字元格式化所得
for (int i = 0; i < s.Length; i++)
// 将得到的字元串使用十六進制類型格式。格式後的字元是小寫的字母,如果使用大寫(X)則格式後的字元是大寫字元
pwd = pwd + s[i].ToString("x");
}
return pwd;
}
2 SHA512
(帶密鑰加密,文本需要在相同密鑰的情況下,加密出的結果才會一緻)
public static string PWDBySHA512(
string sKey, //密鑰
string sText //需要加密的文本
)
byte[] HmacKey = System.Text.Encoding.UTF8.GetBytes(sKey);
byte[] HmacData = System.Text.Encoding.UTF8.GetBytes(sText);
HMACSHA512 Hmac = new HMACSHA512(HmacKey);
CryptoStream cs = new CryptoStream(Stream.Null, Hmac, CryptoStreamMode.Write);
cs.Write(HmacData, 0, HmacData.Length);
cs.Close();
byte[] Result = Hmac.Hash;
return Convert.ToBase64String(Result); //傳回長度為28位元組字元串