微信小程序 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 相关文章推荐
Javascript 验证上传图片大小[客户端]
Aug 01 Javascript
jQuery 源码分析笔记(3) Deferred机制
Jun 19 Javascript
angularjs中的e2e测试实例
Dec 06 Javascript
基于JS实现导航条flash导航条
Jun 17 Javascript
纯JS代码实现隔行变色鼠标移入高亮
Nov 23 Javascript
微信小程序 欢迎页面的制作(源码下载)
Jan 09 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
Apr 07 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
Apr 13 Javascript
Bootstrap Table 删除和批量删除
Sep 22 Javascript
Angular实现的table表格排序功能完整示例
Dec 22 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
Dec 23 Javascript
js实现贪吃蛇游戏 canvas绘制地图
Sep 09 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
PHP+FFMPEG实现将视频自动转码成H264标准Mp4文件
2014/09/24 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
jQuery 获取、设置HTML或TEXT内容的两种方法
2014/05/23 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
简单的js计算器实现
2016/10/26 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)
2017/07/07 Javascript
微信小程序实现张图片合成为一张并下载
2019/07/16 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
Vue与React的区别和优势对比
2020/12/18 Vue.js
[02:20]DOTA2亚洲邀请赛 EHOME战队出场宣传片
2015/02/07 DOTA
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
[37:03]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第二场 12.16
2020/12/18 DOTA
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
3种python调用其他脚本的方法
2020/01/06 Python
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
印度婴儿用品在线商店:Firstcry.com
2016/12/05 全球购物
Linden Leaves官网:新西兰纯净护肤品
2020/12/20 全球购物
辞职申请书范本
2019/05/20 职场文书
Rhit高效可视化Nginx日志查看工具
2021/11/01 Servers
解决Mysql中的innoDB幻读问题
2022/04/29 MySQL
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技
zabbix如何添加监控主机和自定义监控项
2022/08/14 Servers