- 前端MD5计算代码
<script src="cryptojs_v3.1.2/components/core.js" type="text/javascript" charset="utf-8"></script>
<script src="cryptojs_v3.1.2/components/enc-utf16.js" type="text/javascript" charset="utf-8"></script>
<script src="cryptojs_v3.1.2/components/md5.js" type="text/javascript" charset="utf-8"></script>
var md5= CryptoJS.MD5(CryptoJS.enc.Utf16LE.parse("90AZaz.,=哈喽"));
//result: 840556163aff1e6e7d8e586d453ecdae
- 后端MD5计算代码(C#版)
public static string ToMd5(this string data)
{
//.net中的unicode等价于utf-16,UTF-16<=>UTF-16LE,常见的编码如下:
// 代码页,编码
// 65000,UTF-7
// 65001,UTF-8
// 1200, UTF-16
// 1201, UTF-16BE
// 12000,UTF-32
// 12001,UTF-32BE
//所以,System.Text.Encoding.Unicode <=> System.Text.Encoding.GetEncoding(1200)
//同理,System.Text.Encoding.UTF8 <=> System.Text.Encoding.GetEncoding(65001)
var bytes = System.Text.Encoding.Unicode.GetBytes(data);
var md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
var md5Bytes = md5.ComputeHash(bytes);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < md5Bytes.Length; i++)
{
sb.Append(md5Bytes[i].ToString("x2"));
}
return sb.ToString();
}
var s = "90AZaz.,=哈喽";
var result = s.ToMd5();
// result: 840556163aff1e6e7d8e586d453ecdae
- T-SQL中MD5计算
SELECT SUBSTRING(sys.fn_sqlvarbasetostr(HASHBYTES('MD5', N'90AZaz.,=哈喽')), 3, 32)
-- result: 840556163aff1e6e7d8e586d453ecdae