一 MD5
推薦使用:
md5
MD5 md5Hasher = MD5.Create(); byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes("myTest+123")); StringBuilder sBuilder = new StringBuilder(); for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); } //可替換 //string result = string.Join("", data.Select(x => x.ToString("x2"))); Console.WriteLine(sBuilder);
md5+base64:
MD5 md5Hasher = MD5.Create();
string strMD5 = Convert.ToBase64String(md5Hasher.ComputeHash(Encoding.UTF8.GetBytes(str)));
不推薦:
System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToUpper();
因為我有一次和java接口對接時,
發現不推薦的md5和人家出來的結果不一樣
二 hmacSHA1
public static string HmacSha1Sign(string secret, string strOrgData)
{
var hmacsha1 = new HMACSHA1(Encoding.UTF8.GetBytes(secret));
var dataBuffer = Encoding.UTF8.GetBytes(strOrgData);
var hashBytes = hmacsha1.ComputeHash(dataBuffer);
return Convert.ToBase64String(hashBytes);
}