微信小程序 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不同页面传值的改进版
Sep 30 Javascript
JS 控制CSS样式表
Aug 20 Javascript
jQuery中filter()和find()的区别深入了解
Sep 25 Javascript
js实现图片拖动改变顺序附图
May 13 Javascript
详解AngularJS中自定义过滤器
Dec 28 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
Mar 18 Javascript
JS从一组数据中找到指定的单条数据的方法
Jun 02 Javascript
JavaScript学习笔记整理_setTimeout的应用
Sep 19 Javascript
JS实现全屏预览F11功能的示例代码
Jul 23 Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
Nov 18 Javascript
微信小程序-可移动菜单的实现过程详解
Jun 24 Javascript
详解Vue template 如何支持多个根结点
Feb 10 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代码重构工具推荐
2014/10/14 PHP
php限制上传文件类型并保存上传文件的方法
2015/03/13 PHP
WordPress分页伪静态加html后缀
2016/06/08 PHP
使用JSLint提高JS代码质量方法分享
2013/12/16 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
2016/06/13 Javascript
JS模拟的Map类实现方法
2016/06/17 Javascript
初识简单却不失优雅的Vue.js
2016/09/12 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
2017/01/22 Javascript
原生JS实现跑马灯效果
2017/02/20 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
小程序实现多选框功能
2018/10/30 Javascript
js类的继承定义与用法分析
2019/06/21 Javascript
Node.js 实现远程桌面监控的方法步骤
2019/07/02 Javascript
JS实现电脑虚拟键盘打字测试
2020/06/24 Javascript
python正则表达式的使用
2017/06/12 Python
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
pyqt5 从本地选择图片 并显示在label上的实例
2019/06/13 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
python实现简易淘宝购物
2019/11/22 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
2020/11/10 HTML / CSS
GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
2018/04/16 全球购物
金融专业大学生自我评价
2014/01/09 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
聘用意向书范本
2014/04/01 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
关于调整工作时间的通知
2015/04/24 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
旗帜观后感
2015/06/08 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android
Python进行区间取值案例讲解
2021/08/02 Python
公历12个月名称的由来
2022/04/12 杂记