使用UTF8编码进行MD5计算
- 前端MD5计算代码
<script src="cryptojs_v3.1.2/components/core.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("90AZaz.,=哈喽"); //result: 2dee0c28bee6b2e081703cf3c8aa1bea或者
<script src="cryptojs_v3.1.2/rollups/md5.js" type="text/javascript" charset="utf-8"></script> var md5= CryptoJS.MD5("90AZaz.,=哈喽"); //result: 2dee0c28bee6b2e081703cf3c8aa1bea - 后端MD5计算代码(C#版)
public static string ToMd5(this string data) { var bytes = System.Text.Encoding.UTF8.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: 2dee0c28bee6b2e081703cf3c8aa1bea - T-SQL中MD5计算
--T-SQL不支持UTF8格式字符串
使用UTF16编码进行MD5计算
- 前端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
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...