微信小程序 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判断元素是否是隐藏的代码
Apr 24 Javascript
node.js实现BigPipe详解
Dec 05 Javascript
同一个网页中实现多个JavaScript特效的方法
Feb 02 Javascript
JavaScript中使用Math.floor()方法对数字取整
Jun 15 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
Dec 02 Javascript
JavaScript实现的XML与JSON互转功能详解
Feb 16 Javascript
详解node中创建服务进程
May 09 Javascript
基于JavaScript实现评论框展开和隐藏功能
Aug 25 Javascript
JS库之ParticlesJS使用简介
Sep 12 Javascript
Layui给switch添加响应事件的例子
Sep 03 Javascript
JavaScript中的全局属性与方法深入解析
Jun 14 Javascript
在vscode 中设置 vue模板内容的方法
Sep 02 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中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
PHP 输出URL的快捷方式示例代码
2013/09/22 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
2013/09/28 PHP
php中strtotime函数用法详解
2014/11/15 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
通过Unicode转义序列来加密,按你说的可以算是混淆吧
2007/05/06 Javascript
jquery动态添加option示例
2013/12/30 Javascript
js控制网页背景音乐播放与停止的方法
2015/02/06 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
JS实现简单易用的手机端浮动窗口显示效果
2016/09/07 Javascript
JavaScript数组去重的6个方法
2017/01/21 Javascript
React学习笔记之事件处理(二)
2017/07/02 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
基于axios 解决跨域cookie丢失的问题
2018/09/26 Javascript
Vue formData实现图片上传
2019/08/20 Javascript
JavaScript中的执行环境和作用域链
2020/09/04 Javascript
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
深入解析Python中的集合类型操作符
2015/08/19 Python
浅谈插入排序算法在Python程序中的实现及简单改进
2016/05/04 Python
对django 模型 unique together的示例讲解
2019/08/06 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
Python目录和文件处理总结详解
2019/09/02 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
单位未婚证明范本
2014/01/18 职场文书
优秀团队获奖感言
2014/02/19 职场文书
八一建军节感言
2014/02/28 职场文书
公司联欢会策划方案
2014/05/19 职场文书
乡镇党建工作汇报材料
2014/08/14 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
Go使用协程交替打印字符
2021/04/29 Golang
Vue如何清空对象
2022/03/03 Vue.js