1、先是前端加密请求
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>测试 - api</title>
<script src="/Scripts/jquery-1.11.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
var apiParams = {
account: "admin",
password: "111111"
};
debugger;
//因为此项目中,我所有的接口都需要userid ,所以不用的时候就传0
$.ajax({
url: "/api/user/login?token=" + paramsMd5(apiParams, "0") + "&UserId=0",
data:apiParams,
dataType: "json",
type: "POST",
async: false,
success: function (data) {
$("#datashow").html(JSON.stringify(data));
},
error: function (ex) {
$("#datashow").html(JSON.stringify(ex));
}
});
return;
});
</script>
</head>
<body>
<div id="datetimeShow"></div>
<div id="datetimeShowEnd"></div>
<div id="datashow">
</div>
<div class="content">
<input id="test" value="baidu.com" style="width: 90%"/>
<input type="button" value="md5 加密" οnclick="demo();" />
<br/>
MD5:<label id="testmd5"></label>
</div>
</body>
</html>
<script type="text/javascript">
//此token 是和服务器约定的一个Key,我是给用户表建一个字段,用户可以重置此KEY
var token = "gettokeykey";
function paramsMd5(arr,userid) {
var newarr = new Array();
for (key in arr) {
newarr.push(key);
}
newarr.sort(function (a, b) { return a.toLowerCase() > b.toLowerCase() ? 1 : -1; });
var md5Str = "UserId=" + userid;
for (var i in newarr) {
var ks = newarr[i];
md5Str += ("&" + ks + "=" + arr[ks]);
}
md5Str += token;
return calcMD5(md5Str);
}
var hexcase = 0;
var b64pad = "";
var chrsz = 8;
function hex_md5(s) { return binl2hex(core_md5(str2binl(s), s.length * chrsz)); }
function b64_md5(s) { return binl2b64(core_md5(str2binl(s), s.length * chrsz)); }
function hex_hmac_md5(key, data) { return binl2hex(core_hmac_md5(key, data)); }
function b64_hmac_md5(key, data) { return binl2b64(core_hmac_md5(key, data)); }
function calcMD5(s) { return binl2hex(core_md5(str2binl(s), s.length * chrsz)); }
function md5_vm_test() {
return hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
}
function core_md5(x, len) {
x[len >> 5] |= 0x80 << ((len) % 32);
x[(((len + 64) >>> 9) << 4) + 14] = len;
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
for (var i = 0; i < x.length; i += 16) {
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;
a = md5_ff(a, b, c, d, x[i + 0], 7, -680876936);
d = md5_ff(d, a, b, c, x[i + 1], 12, -389564586);
c = md5_ff(c, d, a, b, x[i + 2], 17, 606105819);
b = md5_ff(b, c, d, a, x[i + 3], 22, -1044525330);
a = md5_ff(a, b, c, d, x[i + 4], 7, -176418897);
d = md5_ff(d, a, b, c, x[i + 5], 12, 1200080426);
c = md5_ff(c, d, a, b, x[i + 6], 17