微信小程序 MD5加密登录密码详解及实例代码


Posted in Javascript onJanuary 12, 2017

微信小程序 MD5加密

     在小程序中,页面的脚本逻辑是在JsCore中运行,JsCore是一个没有窗口对象的环境,所以不能在脚本中使用window,也无法在脚本中操作组件。zepto/jquery 也无法使用,因为zepto/jquery 会使用到window对象和document对象。所以在微信小程序中不能使用jquery.md5.js对密码进行加密。下面我提供一种MD5.js加密实例,本实例先静态演示,后面再到小程序中演示。

    md5.js程序如下:

/* 
 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message 
 * Digest Algorithm, as defined in RFC 1321. 
 * Version 1.1 Copyright (C) Paul Johnston 1999 - 2002. 
 * Code also contributed by Greg Holt 
 * See http://pajhome.org.uk/site/legal.html for details. 
 */ 
 
/* 
 * Add integers, wrapping at 2^32. This uses 16-bit operations internally 
 * to work around bugs in some JS interpreters. 
 */ 
function safe_add(x, y) 
{ 
 var lsw = (x & 0xFFFF) + (y & 0xFFFF) 
 var msw = (x >> 16) + (y >> 16) + (lsw >> 16) 
 return (msw << 16) | (lsw & 0xFFFF) 
} 
 
/* 
 * Bitwise rotate a 32-bit number to the left. 
 */ 
function rol(num, cnt) 
{ 
 return (num << cnt) | (num >>> (32 - cnt)) 
} 
 
/* 
 * These functions implement the four basic operations the algorithm uses. 
 */ 
function cmn(q, a, b, x, s, t) 
{ 
 return safe_add(rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b) 
} 
function ff(a, b, c, d, x, s, t) 
{ 
 return cmn((b & c) | ((~b) & d), a, b, x, s, t) 
} 
function gg(a, b, c, d, x, s, t) 
{ 
 return cmn((b & d) | (c & (~d)), a, b, x, s, t) 
} 
function hh(a, b, c, d, x, s, t) 
{ 
 return cmn(b ^ c ^ d, a, b, x, s, t) 
} 
function ii(a, b, c, d, x, s, t) 
{ 
 return cmn(c ^ (b | (~d)), a, b, x, s, t) 
} 
 
/* 
 * Calculate the MD5 of an array of little-endian words, producing an array 
 * of little-endian words. 
 */ 
function coreMD5(x) 
{ 
 var a = 1732584193 
 var b = -271733879 
 var c = -1732584194 
 var d = 271733878 
 
 for(i = 0; i < x.length; i += 16) 
 { 
  var olda = a 
  var oldb = b 
  var oldc = c 
  var oldd = d 
  a = ff(a, b, c, d, x[i+ 0], 7 , -680876936) 
  d = ff(d, a, b, c, x[i+ 1], 12, -389564586) 
  c = ff(c, d, a, b, x[i+ 2], 17, 606105819) 
  b = ff(b, c, d, a, x[i+ 3], 22, -1044525330) 
  a = ff(a, b, c, d, x[i+ 4], 7 , -176418897) 
  d = ff(d, a, b, c, x[i+ 5], 12, 1200080426) 
  c = ff(c, d, a, b, x[i+ 6], 17, -1473231341) 
  b = ff(b, c, d, a, x[i+ 7], 22, -45705983) 
  a = ff(a, b, c, d, x[i+ 8], 7 , 1770035416) 
  d = ff(d, a, b, c, x[i+ 9], 12, -1958414417) 
  c = ff(c, d, a, b, x[i+10], 17, -42063) 
  b = ff(b, c, d, a, x[i+11], 22, -1990404162) 
  a = ff(a, b, c, d, x[i+12], 7 , 1804603682) 
  d = ff(d, a, b, c, x[i+13], 12, -40341101) 
  c = ff(c, d, a, b, x[i+14], 17, -1502002290) 
  b = ff(b, c, d, a, x[i+15], 22, 1236535329) 
  a = gg(a, b, c, d, x[i+ 1], 5 , -165796510) 
  d = gg(d, a, b, c, x[i+ 6], 9 , -1069501632) 
  c = gg(c, d, a, b, x[i+11], 14, 643717713) 
  b = gg(b, c, d, a, x[i+ 0], 20, -373897302) 
  a = gg(a, b, c, d, x[i+ 5], 5 , -701558691) 
  d = gg(d, a, b, c, x[i+10], 9 , 38016083) 
  c = gg(c, d, a, b, x[i+15], 14, -660478335) 
  b = gg(b, c, d, a, x[i+ 4], 20, -405537848) 
  a = gg(a, b, c, d, x[i+ 9], 5 , 568446438) 
  d = gg(d, a, b, c, x[i+14], 9 , -1019803690) 
  c = gg(c, d, a, b, x[i+ 3], 14, -187363961) 
  b = gg(b, c, d, a, x[i+ 8], 20, 1163531501) 
  a = gg(a, b, c, d, x[i+13], 5 , -1444681467) 
  d = gg(d, a, b, c, x[i+ 2], 9 , -51403784) 
  c = gg(c, d, a, b, x[i+ 7], 14, 1735328473) 
  b = gg(b, c, d, a, x[i+12], 20, -1926607734) 
  a = hh(a, b, c, d, x[i+ 5], 4 , -378558) 
  d = hh(d, a, b, c, x[i+ 8], 11, -2022574463) 
  c = hh(c, d, a, b, x[i+11], 16, 1839030562) 
  b = hh(b, c, d, a, x[i+14], 23, -35309556) 
  a = hh(a, b, c, d, x[i+ 1], 4 , -1530992060) 
  d = hh(d, a, b, c, x[i+ 4], 11, 1272893353) 
  c = hh(c, d, a, b, x[i+ 7], 16, -155497632) 
  b = hh(b, c, d, a, x[i+10], 23, -1094730640) 
  a = hh(a, b, c, d, x[i+13], 4 , 681279174) 
  d = hh(d, a, b, c, x[i+ 0], 11, -358537222) 
  c = hh(c, d, a, b, x[i+ 3], 16, -722521979) 
  b = hh(b, c, d, a, x[i+ 6], 23, 76029189) 
  a = hh(a, b, c, d, x[i+ 9], 4 , -640364487) 
  d = hh(d, a, b, c, x[i+12], 11, -421815835) 
  c = hh(c, d, a, b, x[i+15], 16, 530742520) 
  b = hh(b, c, d, a, x[i+ 2], 23, -995338651) 
  a = ii(a, b, c, d, x[i+ 0], 6 , -198630844) 
  d = ii(d, a, b, c, x[i+ 7], 10, 1126891415) 
  c = ii(c, d, a, b, x[i+14], 15, -1416354905) 
  b = ii(b, c, d, a, x[i+ 5], 21, -57434055) 
  a = ii(a, b, c, d, x[i+12], 6 , 1700485571) 
  d = ii(d, a, b, c, x[i+ 3], 10, -1894986606) 
  c = ii(c, d, a, b, x[i+10], 15, -1051523) 
  b = ii(b, c, d, a, x[i+ 1], 21, -2054922799) 
  a = ii(a, b, c, d, x[i+ 8], 6 , 1873313359) 
  d = ii(d, a, b, c, x[i+15], 10, -30611744) 
  c = ii(c, d, a, b, x[i+ 6], 15, -1560198380) 
  b = ii(b, c, d, a, x[i+13], 21, 1309151649) 
  a = ii(a, b, c, d, x[i+ 4], 6 , -145523070) 
  d = ii(d, a, b, c, x[i+11], 10, -1120210379) 
  c = ii(c, d, a, b, x[i+ 2], 15, 718787259) 
  b = ii(b, c, d, a, x[i+ 9], 21, -343485551) 
  a = safe_add(a, olda) 
  b = safe_add(b, oldb) 
  c = safe_add(c, oldc) 
  d = safe_add(d, oldd) 
 } 
 return [a, b, c, d] 
} 
 
/* 
 * Convert an array of little-endian words to a hex string. 
 */ 
function binl2hex(binarray) 
{ 
 var hex_tab = "0123456789abcdef" 
 var str = "" 
 for(var i = 0; i < binarray.length * 4; i++) 
 { 
  str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + 
      hex_tab.charAt((binarray[i>>2] >> ((i%4)*8)) & 0xF) 
 } 
 return str 
} 
 
/* 
 * Convert an array of little-endian words to a base64 encoded string. 
 */ 
function binl2b64(binarray) 
{ 
 var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" 
 var str = "" 
 for(var i = 0; i < binarray.length * 32; i += 6) 
 { 
  str += tab.charAt(((binarray[i>>5] << (i%32)) & 0x3F) | 
           ((binarray[i>>5+1] >> (32-i%32)) & 0x3F)) 
 } 
 return str 
} 
 
/* 
 * Convert an 8-bit character string to a sequence of 16-word blocks, stored 
 * as an array, and append appropriate padding for MD4/5 calculation. 
 * If any of the characters are >255, the high byte is silently ignored. 
 */ 
function str2binl(str) 
{ 
 var nblk = ((str.length + 8) >> 6) + 1 // number of 16-word blocks 
 var blks = new Array(nblk * 16) 
 for(var i = 0; i < nblk * 16; i++) blks[i] = 0 
 for(var i = 0; i < str.length; i++) 
  blks[i>>2] |= (str.charCodeAt(i) & 0xFF) << ((i%4) * 8) 
 blks[i>>2] |= 0x80 << ((i%4) * 8) 
 blks[nblk*16-2] = str.length * 8 
 return blks 
} 
 
/* 
 * Convert a wide-character string to a sequence of 16-word blocks, stored as 
 * an array, and append appropriate padding for MD4/5 calculation. 
 */ 
function strw2binl(str) 
{ 
 var nblk = ((str.length + 4) >> 5) + 1 // number of 16-word blocks 
 var blks = new Array(nblk * 16) 
 for(var i = 0; i < nblk * 16; i++) blks[i] = 0 
 for(var i = 0; i < str.length; i++) 
  blks[i>>1] |= str.charCodeAt(i) << ((i%2) * 16) 
 blks[i>>1] |= 0x80 << ((i%2) * 16) 
 blks[nblk*16-2] = str.length * 16 
 return blks 
} 
 
/* 
 * External interface 
 */ 
function hexMD5 (str) { return binl2hex(coreMD5( str2binl(str))) } 
function hexMD5w(str) { return binl2hex(coreMD5(strw2binl(str))) } 
function b64MD5 (str) { return binl2b64(coreMD5( str2binl(str))) } 
function b64MD5w(str) { return binl2b64(coreMD5(strw2binl(str))) } 
/* Backward compatibility */ 
function calcMD5(str) { return binl2hex(coreMD5( str2binl(str))) }

md5.html页面程序如下:

<html>
<head>
<script language='javascript' src='md5.js'></script><!--引入MD5加密-->
<script language="javascript">
<!--
function my_do()
//通过js对数据进行加密
 {
 //var URL="http://127.0.0.1/index.jsp?";
 //var dqz_out="";
 var dqz_in=document.my_form1.my_in_1.value;
 document.my_form1.my_out_1.value=hexMD5(dqz_in);
 document.my_form1.my_out_2.value=hexMD5w(dqz_in);
 document.my_form1.my_out_3.value=b64MD5(dqz_in);
 document.my_form1.my_out_4.value=b64MD5w(dqz_in);
 //URL=URL+"in="+dqz_in+"&out="+dqz_out;
 //my_form1.action = URL;
 //window.open(URL,'','');
 //my_form1.submit();
 }
//-->
</script>
</head>
<body>
<form name="my_form1" method="get" action="">
 <p>计算MD5加密结果的例子<br>
  请输入加密内容:
   <textarea name="my_in_1" cols="70" rows="10">1234567890</textarea>
  <br>
  点击右边的文本框显示结果:<br><!--mouseup某个鼠标按键被松开,mouseout鼠标从某个元素移开-->
hexMD5()= <input name="my_out_1" type="text" onChange="my_do()" onMouseUp="my_do()" onMouseOut="my_do()" size="50" maxlength="50"><br> 
hexMD5w()=<input name="my_out_2" type="text" onChange="my_do()" onMouseUp="my_do()" onMouseOut="my_do()" size="50" maxlength="50"><br>
b64MD5()= <input name="my_out_3" type="text" onChange="my_do()" onMouseUp="my_do()" onMouseOut="my_do()" size="50" maxlength="50"><br>
b64MD5w()=<input name="my_out_4" type="text" onChange="my_do()" onMouseUp="my_do()" onMouseOut="my_do()" size="50" maxlength="50"><br>
  <br>
 </p>
</form>
</body>
</html>

md5.js加密效果如图:

微信小程序 MD5加密登录密码详解及实例代码

下面介绍微信小程序如何加密——模块化

     我们可以将一些公共的代码抽离成为一个单独的 js 文件,作为一个模块。模块只有通过 module.exports 或者 exports 才能对外暴露接口。需要注意的是:

    (1)、 exports 是 module.exports 的一个引用,因此在模块里边随意更改 exports 的指向会造成未知的错误。所以我们更推荐开发者采用 module.exports 来暴露模块接口,除非你已经清晰知道这两者的关系。

     (2)、小程序目前不支持直接引入 node_modules , 开发者需要使用到 node_modules 时候建议拷贝出相关的代码到小程序的目录中。

// common.js 
function sayHello(name) { 
 console.log(`Hello ${name} !`) 
} 
function sayGoodbye(name) { 
 console.log(`Goodbye ${name} !`) 
} 
module.exports.sayHello = sayHello 
exports.sayGoodbye = sayGoodbye

​在需要使用这些模块的文件中,使用 require(path) 将公共代码引入

var common = require('common.js') 
Page({ 
 helloMINA: function() { 
  common.sayHello('MINA') 
 }, 
 goodbyeMINA: function() { 
  common.sayGoodbye('MINA') 
 } 
})

 仿照模块化方法我们可以加入MD5.js加密:

md5.js程序如下:

/* 
 * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message 
 * Digest Algorithm, as defined in RFC 1321. 
 * Version 1.1 Copyright (C) Paul Johnston 1999 - 2002. 
 * Code also contributed by Greg Holt 
 * See http://pajhome.org.uk/site/legal.html for details. 
 */ 
 
/* 
 * Add integers, wrapping at 2^32. This uses 16-bit operations internally 
 * to work around bugs in some JS interpreters. 
 */ 
function safe_add(x, y) 
{ 
 var lsw = (x & 0xFFFF) + (y & 0xFFFF) 
 var msw = (x >> 16) + (y >> 16) + (lsw >> 16) 
 return (msw << 16) | (lsw & 0xFFFF) 
} 
 
/* 
 * Bitwise rotate a 32-bit number to the left. 
 */ 
function rol(num, cnt) 
{ 
 return (num << cnt) | (num >>> (32 - cnt)) 
} 
 
/* 
 * These functions implement the four basic operations the algorithm uses. 
 */ 
function cmn(q, a, b, x, s, t) 
{ 
 return safe_add(rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b) 
} 
function ff(a, b, c, d, x, s, t) 
{ 
 return cmn((b & c) | ((~b) & d), a, b, x, s, t) 
} 
function gg(a, b, c, d, x, s, t) 
{ 
 return cmn((b & d) | (c & (~d)), a, b, x, s, t) 
} 
function hh(a, b, c, d, x, s, t) 
{ 
 return cmn(b ^ c ^ d, a, b, x, s, t) 
} 
function ii(a, b, c, d, x, s, t) 
{ 
 return cmn(c ^ (b | (~d)), a, b, x, s, t) 
} 
 
/* 
 * Calculate the MD5 of an array of little-endian words, producing an array 
 * of little-endian words. 
 */ 
function coreMD5(x) 
{ 
 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 = ff(a, b, c, d, x[i+ 0], 7 , -680876936) 
  d = ff(d, a, b, c, x[i+ 1], 12, -389564586) 
  c = ff(c, d, a, b, x[i+ 2], 17, 606105819) 
  b = ff(b, c, d, a, x[i+ 3], 22, -1044525330) 
  a = ff(a, b, c, d, x[i+ 4], 7 , -176418897) 
  d = ff(d, a, b, c, x[i+ 5], 12, 1200080426) 
  c = ff(c, d, a, b, x[i+ 6], 17, -1473231341) 
  b = ff(b, c, d, a, x[i+ 7], 22, -45705983) 
  a = ff(a, b, c, d, x[i+ 8], 7 , 1770035416) 
  d = ff(d, a, b, c, x[i+ 9], 12, -1958414417) 
  c = ff(c, d, a, b, x[i+10], 17, -42063) 
  b = ff(b, c, d, a, x[i+11], 22, -1990404162) 
  a = ff(a, b, c, d, x[i+12], 7 , 1804603682) 
  d = ff(d, a, b, c, x[i+13], 12, -40341101) 
  c = ff(c, d, a, b, x[i+14], 17, -1502002290) 
  b = ff(b, c, d, a, x[i+15], 22, 1236535329) 
 
  a = gg(a, b, c, d, x[i+ 1], 5 , -165796510) 
  d = gg(d, a, b, c, x[i+ 6], 9 , -1069501632) 
  c = gg(c, d, a, b, x[i+11], 14, 643717713) 
  b = gg(b, c, d, a, x[i+ 0], 20, -373897302) 
  a = gg(a, b, c, d, x[i+ 5], 5 , -701558691) 
  d = gg(d, a, b, c, x[i+10], 9 , 38016083) 
  c = gg(c, d, a, b, x[i+15], 14, -660478335) 
  b = gg(b, c, d, a, x[i+ 4], 20, -405537848) 
  a = gg(a, b, c, d, x[i+ 9], 5 , 568446438) 
  d = gg(d, a, b, c, x[i+14], 9 , -1019803690) 
  c = gg(c, d, a, b, x[i+ 3], 14, -187363961) 
  b = gg(b, c, d, a, x[i+ 8], 20, 1163531501) 
  a = gg(a, b, c, d, x[i+13], 5 , -1444681467) 
  d = gg(d, a, b, c, x[i+ 2], 9 , -51403784) 
  c = gg(c, d, a, b, x[i+ 7], 14, 1735328473) 
  b = gg(b, c, d, a, x[i+12], 20, -1926607734) 
 
  a = hh(a, b, c, d, x[i+ 5], 4 , -378558) 
  d = hh(d, a, b, c, x[i+ 8], 11, -2022574463) 
  c = hh(c, d, a, b, x[i+11], 16, 1839030562) 
  b = hh(b, c, d, a, x[i+14], 23, -35309556) 
  a = hh(a, b, c, d, x[i+ 1], 4 , -1530992060) 
  d = hh(d, a, b, c, x[i+ 4], 11, 1272893353) 
  c = hh(c, d, a, b, x[i+ 7], 16, -155497632) 
  b = hh(b, c, d, a, x[i+10], 23, -1094730640) 
  a = hh(a, b, c, d, x[i+13], 4 , 681279174) 
  d = hh(d, a, b, c, x[i+ 0], 11, -358537222) 
  c = hh(c, d, a, b, x[i+ 3], 16, -722521979) 
  b = hh(b, c, d, a, x[i+ 6], 23, 76029189) 
  a = hh(a, b, c, d, x[i+ 9], 4 , -640364487) 
  d = hh(d, a, b, c, x[i+12], 11, -421815835) 
  c = hh(c, d, a, b, x[i+15], 16, 530742520) 
  b = hh(b, c, d, a, x[i+ 2], 23, -995338651) 
 
  a = ii(a, b, c, d, x[i+ 0], 6 , -198630844) 
  d = ii(d, a, b, c, x[i+ 7], 10, 1126891415) 
  c = ii(c, d, a, b, x[i+14], 15, -1416354905) 
  b = ii(b, c, d, a, x[i+ 5], 21, -57434055) 
  a = ii(a, b, c, d, x[i+12], 6 , 1700485571) 
  d = ii(d, a, b, c, x[i+ 3], 10, -1894986606) 
  c = ii(c, d, a, b, x[i+10], 15, -1051523) 
  b = ii(b, c, d, a, x[i+ 1], 21, -2054922799) 
  a = ii(a, b, c, d, x[i+ 8], 6 , 1873313359) 
  d = ii(d, a, b, c, x[i+15], 10, -30611744) 
  c = ii(c, d, a, b, x[i+ 6], 15, -1560198380) 
  b = ii(b, c, d, a, x[i+13], 21, 1309151649) 
  a = ii(a, b, c, d, x[i+ 4], 6 , -145523070) 
  d = ii(d, a, b, c, x[i+11], 10, -1120210379) 
  c = ii(c, d, a, b, x[i+ 2], 15, 718787259) 
  b = ii(b, c, d, a, x[i+ 9], 21, -343485551) 
 
  a = safe_add(a, olda) 
  b = safe_add(b, oldb) 
  c = safe_add(c, oldc) 
  d = safe_add(d, oldd) 
 } 
 return [a, b, c, d] 
} 
 
/* 
 * Convert an array of little-endian words to a hex string. 
 */ 
function binl2hex(binarray) 
{ 
 var hex_tab = "0123456789abcdef" 
 var str = "" 
 for(var i = 0; i < binarray.length * 4; i++) 
 { 
  str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + 
      hex_tab.charAt((binarray[i>>2] >> ((i%4)*8)) & 0xF) 
 } 
 return str 
} 
 
/* 
 * Convert an array of little-endian words to a base64 encoded string. 
 */ 
function binl2b64(binarray) 
{ 
 var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" 
 var str = "" 
 for(var i = 0; i < binarray.length * 32; i += 6) 
 { 
  str += tab.charAt(((binarray[i>>5] << (i%32)) & 0x3F) | 
           ((binarray[i>>5+1] >> (32-i%32)) & 0x3F)) 
 } 
 return str 
} 
 
/* 
 * Convert an 8-bit character string to a sequence of 16-word blocks, stored 
 * as an array, and append appropriate padding for MD4/5 calculation. 
 * If any of the characters are >255, the high byte is silently ignored. 
 */ 
function str2binl(str) 
{ 
 var nblk = ((str.length + 8) >> 6) + 1 // number of 16-word blocks 
 var blks = new Array(nblk * 16) 
 for(var i = 0; i < nblk * 16; i++) blks[i] = 0 
 for(var i = 0; i < str.length; i++) 
  blks[i>>2] |= (str.charCodeAt(i) & 0xFF) << ((i%4) * 8) 
 blks[i>>2] |= 0x80 << ((i%4) * 8) 
 blks[nblk*16-2] = str.length * 8 
 return blks 
} 
 
/* 
 * Convert a wide-character string to a sequence of 16-word blocks, stored as 
 * an array, and append appropriate padding for MD4/5 calculation. 
 */ 
function strw2binl(str) 
{ 
 var nblk = ((str.length + 4) >> 5) + 1 // number of 16-word blocks 
 var blks = new Array(nblk * 16) 
 for(var i = 0; i < nblk * 16; i++) blks[i] = 0 
 for(var i = 0; i < str.length; i++) 
  blks[i>>1] |= str.charCodeAt(i) << ((i%2) * 16) 
 blks[i>>1] |= 0x80 << ((i%2) * 16) 
 blks[nblk*16-2] = str.length * 16 
 return blks 
} 
 
/* 
 * External interface 
 */ 
function hexMD5 (str) { return binl2hex(coreMD5( str2binl(str))) } 
function hexMD5w(str) { return binl2hex(coreMD5(strw2binl(str))) } 
function b64MD5 (str) { return binl2b64(coreMD5( str2binl(str))) } 
function b64MD5w(str) { return binl2b64(coreMD5(strw2binl(str))) } 
/* Backward compatibility */ 
function calcMD5(str) { return binl2hex(coreMD5( str2binl(str))) } 
module.exports = { 
 hexMD5: hexMD5 
}

使用程序如下:

//index.js 
var util = require('../../utils/md5.js') 
//获取应用实例 
var app = getApp() 
Page({ 
 data: { 
  page:'1', 
 }, 
  var password=value.password; 
  if(password===""||password===null){ 
    wx.showModal({ 
      title:'提示', 
      content: '密码不能为空', 
      confirmColor:'#118EDE', 
      showCancel: false, 
      success: function (res) { 
        if (res.confirm) { 
          //console.log('用户点击确定') 
        } 
      } 
    }); 
    return false; 
  }else{ 
    password=util.hexMD5(password); 
  } 
})

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
jquery ajax属性async(同步异步)示例
Nov 05 Javascript
采用自执行的匿名函数解决for循环使用闭包的问题
Sep 11 Javascript
原生javascript实现图片按钮切换
Jan 12 Javascript
Java File类的常用方法总结
Mar 18 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
Nov 20 Javascript
Bootstrap媒体对象的实现
May 01 Javascript
AngularJS 作用域详解及示例代码
Aug 17 Javascript
Angularjs实现搜索关键字高亮显示效果
Jan 17 Javascript
Bootstrap Table从零开始
Jun 30 Javascript
详解ES6 Symbol 的用途
Oct 14 Javascript
Angular PWA使用的Demo示例
Jan 31 Javascript
vue同个按钮控制展开和折叠同个事件操作
Jul 29 Javascript
很棒的一组js图片轮播特效
Jan 12 #Javascript
微信小程序 页面跳转传递值几种方法详解
Jan 12 #Javascript
微信小程序 详解Page中data数据操作和函数调用
Jan 12 #Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
Jan 12 #Javascript
js实现微博发布小功能
Jan 12 #Javascript
基于jQuery实现照片墙自动播放特效
Jan 12 #Javascript
canvas实现绘制吃豆鱼效果
Jan 12 #Javascript
You might like
十大催泪虐心动漫,你能坚持看到第几部?
2020/03/04 日漫
PHP中PDO的错误处理
2011/09/04 PHP
Thinkphp中的volist标签用法简介
2014/06/18 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
php下Memcached入门实例解析
2015/01/05 PHP
PHP实现图片自动清理的方法
2015/07/08 PHP
Yii2 输出xml格式数据的方法
2016/05/03 PHP
laravel 5.3 单用户登录简单实现方法
2019/10/14 PHP
Laravel实现ApiToken认证请求
2019/10/14 PHP
一个JavaScript函数把URL参数解析成Json对象
2014/09/24 Javascript
Google 地图类型详解及示例代码
2016/08/06 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
Sublime Text3 配置 NodeJs 环境的方法
2020/05/20 NodeJs
vue-cli打包后本地运行dist文件中的index.html操作
2020/08/12 Javascript
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
解读Python中degrees()方法的使用
2015/05/18 Python
解决Matplotlib图表不能在Pycharm中显示的问题
2018/05/24 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
对python操作kafka写入json数据的简单demo分享
2018/12/27 Python
python写日志文件操作类与应用示例
2019/07/01 Python
Python + OpenCV 实现LBP特征提取的示例代码
2019/07/11 Python
Python实现播放和录制声音的功能
2020/08/12 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
2020/09/16 Python
墨尔本照明批发商店:Mica Lighting
2017/12/28 全球购物
计算机专业应届毕业生自荐信
2013/09/26 职场文书
会计电算化大学生职业规划书
2014/02/05 职场文书
户外亲子活动总结
2015/05/08 职场文书
出生证明范本
2015/06/15 职场文书
班主任寄语2016
2015/12/04 职场文书
小学作文指导之如何写人?
2019/07/08 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书
使用CSS连接数据库的方式
2022/02/28 HTML / CSS
【海涛教你打dota】体验一超神发条:咱是抢盾专业户
2022/04/01 DOTA
SQL Server Agent 服务无法启动
2022/04/20 SQL Server