搜索
您的当前位置:首页正文

javascriptmd5加密代码_javascript技巧

2023-12-02 来源:欢乐泡美食网

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

小编还为您整理了以下内容,可能对您也有帮助:

浅谈如何通过node.js对数据进行MD5加密

md5介绍:MD5是一种常用的哈希算法,主要用于对一些重要数据进行“签名”,当然这些数据可以是任意的。最终得到的“签名”通常都是一个16或32位的十六进制的字符串。

实际工作开发中,是不会有人直接将密码明文直接放到数据库当中的。因为这种做法是非常不安全的,一般都要对其进行MD5加密!比如某用户的密码是“123456“(当然这样的密码也没有安全性可言),经过MD5处理后即为:

“e10adc3949ba59abbe56e057f20f883e”。这样做的好处主要有以下两点:

1、预防网站运营内部人员知道你的密码,而做一些不道德的行为。因为有很多人为了方便将所有的密码都设置成一样的。

2、预防外部的攻击,如果你注册的网站被黑客进行攻击,得到该网站的一些数据,拿到的也是一堆经MD5处理后的字符串。

注意:MD5一般是不能够被反编译的。前提是你的密码不要设置的过于简单。这也是现在为什么越来越多的网站,对用户设置的密码有了越来越高的要求,不仅仅是密码长度要够长,而且密码里还要包括数字,大小字母,以及特殊字符串。

本篇文章将主要针对于在NODE.JS中如何对数据进行MD5加密:

直接在NODE中引入md5依赖包:

下载安装md5依赖包

npm install md5

md5加密实例:

var md5 =require("md5");

//设置加密字符串

var passWord="if(1==1){console.log('i love you')}";

console.log(md5(passWord));//a775657889f1ad6e19178c3cd734392b

当然只是单纯的对数据进行MD5加密也并不安全,最好在数据上加上一点盐料:

var md5 =require("md5");

//设置加密字符串

var passWord="if(1==1){console.log('i love you')}";

//在原来的字符串的基础上加上一些特殊文本,例如“zhangpeiyue.com"

console.log(md5(passWord+"zhangpeiyue.com"));//13c22698f52329433107e75b49330484

nodejs中的MD5加密方式:

第一种:

var crypto=require('crypto');

var md5=crypto.createHash("md5");

md5.update("abcdef");

var str=md5.digest('hex');

var s=str.toUpperCase(); //32位大写

console.log(s);

第二种:

var md5=require("md5")

var str=md5("abcdef")

//str=e80b5017098950fc58aad83c8c14978e 默认32位小写

怎么用js在客户端实现MD5加密

使用下面的函数,例如varpwd=hex_md5("hello world");对"hello world"进行md5加密。

var hexcase = 0;
function hex_md5(a) {
   if (a == "") return a;
   return rstr2hex(rstr_md5(str2rstr_utf8(a)))
}
function hex_hmac_md5(a, b) {
   return rstr2hex(rstr_hmac_md5(str2rstr_utf8(a), str2rstr_utf8(b)))
}
function md5_vm_test() {
   return hex_md5("abc").toLowerCase() == "900150983cd24fb0d6963f7d28e17f72"
}
function rstr_md5(a) {
   return binl2rstr(binl_md5(rstr2binl(a), a.length * 8))
}
function rstr_hmac_md5(c, f) {
   var e = rstr2binl(c);
   if (e.length > 16) {
       e = binl_md5(e, c.length * 8)
   }
   var a = Array(16),
   d = Array(16);
   for (var b = 0; b < 16; b++) {
       a[b] = e[b] ^ 909522486;
       d[b] = e[b] ^ 1549556828
   }
   var g = binl_md5(a.concat(rstr2binl(f)), 512 + f.length * 8);
   return binl2rstr(binl_md5(d.concat(g), 512 + 128))
}
function rstr2hex(c) {
   try {
       hexcase
   } catch(g) {
       hexcase = 0
   }
   var f = hexcase ? "0123456789ABCDEF": "0123456789abcdef";
   var b = "";
   var a;
   for (var d = 0; d < c.length; d++) {
       a = c.charCodeAt(d);
       b += f.charAt((a >>> 4) & 15) + f.charAt(a & 15)
   }
   return b
}
function str2rstr_utf8(c) {
   var b = "";
   var d = -1;
   var a, e;
   while (++d < c.length) {
       a = c.charCodeAt(d);
       e = d + 1 < c.length ? c.charCodeAt(d + 1) : 0;
       if (55296 <= a && a <= 56319 && 56320 <= e && e <= 57343) {
           a = 65536 + ((a & 1023) << 10) + (e & 1023);
           d++
       }
       if (a <= 127) {
           b += String.fromCharCode(a)
       } else {
           if (a <= 2047) {
               b += String.fromCharCode(192 | ((a >>> 6) & 31), 128 | (a & 63))
           } else {
               if (a <= 65535) {
                   b += String.fromCharCode(224 | ((a >>> 12) & 15), 128 | ((a >>> 6) & 63), 128 | (a & 63))
               } else {
                   if (a <= 2097151) {
                       b += String.fromCharCode(240 | ((a >>> 18) & 7), 128 | ((a >>> 12) & 63), 128 | ((a >>> 6) & 63), 128 | (a & 63))
                   }
               }
           }
       }
   }
   return b
}
function rstr2binl(b) {
   var a = Array(b.length >> 2);
   for (var c = 0; c < a.length; c++) {
       a[c] = 0
   }
   for (var c = 0; c < b.length * 8; c += 8) {
       a[c >> 5] |= (b.charCodeAt(c / 8) & 255) << (c % 32)
   }
   return a
}
function binl2rstr(b) {
   var a = "";
   for (var c = 0; c < b.length * 32; c += 8) {
       a += String.fromCharCode((b[c >> 5] >>> (c % 32)) & 255)
   }
   return a
}
function binl_md5(p, k) {
   p[k >> 5] |= 128 << ((k) % 32);
   p[(((k + 64) >>> 9) << 4) + 14] = k;
   var o = 1732584193;
   var n = -271733879;
   var m = -1732584194;
   var l = 271733878;
   for (var g = 0; g < p.length; g += 16) {
       var j = o;
       var h = n;
       var f = m;
       var e = l;
       o = md5_ff(o, n, m, l, p[g + 0], 7, -680876936);
       l = md5_ff(l, o, n, m, p[g + 1], 12, -389564586);
       m = md5_ff(m, l, o, n, p[g + 2], 17, 606105819);
       n = md5_ff(n, m, l, o, p[g + 3], 22, -1044525330);
       o = md5_ff(o, n, m, l, p[g + 4], 7, -176418897);
       l = md5_ff(l, o, n, m, p[g + 5], 12, 1200080426);
       m = md5_ff(m, l, o, n, p[g + 6], 17, -1473231341);
       n = md5_ff(n, m, l, o, p[g + 7], 22, -45705983);
       o = md5_ff(o, n, m, l, p[g + 8], 7, 1770035416);
       l = md5_ff(l, o, n, m, p[g + 9], 12, -1958414417);
       m = md5_ff(m, l, o, n, p[g + 10], 17, -42063);
       n = md5_ff(n, m, l, o, p[g + 11], 22, -1990404162);
       o = md5_ff(o, n, m, l, p[g + 12], 7, 1804603682);
       l = md5_ff(l, o, n, m, p[g + 13], 12, -40341101);
       m = md5_ff(m, l, o, n, p[g + 14], 17, -1502002290);
       n = md5_ff(n, m, l, o, p[g + 15], 22, 1236535329);
       o = md5_gg(o, n, m, l, p[g + 1], 5, -165796510);
       l = md5_gg(l, o, n, m, p[g + 6], 9, -1069501632);
       m = md5_gg(m, l, o, n, p[g + 11], 14, 643717713);
       n = md5_gg(n, m, l, o, p[g + 0], 20, -373897302);
       o = md5_gg(o, n, m, l, p[g + 5], 5, -701558691);
       l = md5_gg(l, o, n, m, p[g + 10], 9, 38016083);
       m = md5_gg(m, l, o, n, p[g + 15], 14, -660478335);
       n = md5_gg(n, m, l, o, p[g + 4], 20, -405537848);
       o = md5_gg(o, n, m, l, p[g + 9], 5, 568446438);
       l = md5_gg(l, o, n, m, p[g + 14], 9, -1019803690);
       m = md5_gg(m, l, o, n, p[g + 3], 14, -187363961);
       n = md5_gg(n, m, l, o, p[g + 8], 20, 1163531501);
       o = md5_gg(o, n, m, l, p[g + 13], 5, -1444681467);
       l = md5_gg(l, o, n, m, p[g + 2], 9, -51403784);
       m = md5_gg(m, l, o, n, p[g + 7], 14, 1735328473);
       n = md5_gg(n, m, l, o, p[g + 12], 20, -1926607734);
       o = md5_hh(o, n, m, l, p[g + 5], 4, -378558);
       l = md5_hh(l, o, n, m, p[g + 8], 11, -2022574463);
       m = md5_hh(m, l, o, n, p[g + 11], 16, 1839030562);
       n = md5_hh(n, m, l, o, p[g + 14], 23, -35309556);
       o = md5_hh(o, n, m, l, p[g + 1], 4, -1530992060);
       l = md5_hh(l, o, n, m, p[g + 4], 11, 1272893353);
       m = md5_hh(m, l, o, n, p[g + 7], 16, -155497632);
       n = md5_hh(n, m, l, o, p[g + 10], 23, -1094730640);
       o = md5_hh(o, n, m, l, p[g + 13], 4, 681279174);
       l = md5_hh(l, o, n, m, p[g + 0], 11, -358537222);
       m = md5_hh(m, l, o, n, p[g + 3], 16, -722521979);
       n = md5_hh(n, m, l, o, p[g + 6], 23, 76029189);
       o = md5_hh(o, n, m, l, p[g + 9], 4, -640364487);
       l = md5_hh(l, o, n, m, p[g + 12], 11, -421815835);
       m = md5_hh(m, l, o, n, p[g + 15], 16, 530742520);
       n = md5_hh(n, m, l, o, p[g + 2], 23, -995338651);
       o = md5_ii(o, n, m, l, p[g + 0], 6, -198630844);
       l = md5_ii(l, o, n, m, p[g + 7], 10, 1126891415);
       m = md5_ii(m, l, o, n, p[g + 14], 15, -1416354905);
       n = md5_ii(n, m, l, o, p[g + 5], 21, -57434055);
       o = md5_ii(o, n, m, l, p[g + 12], 6, 1700485571);
       l = md5_ii(l, o, n, m, p[g + 3], 10, -1894986606);
       m = md5_ii(m, l, o, n, p[g + 10], 15, -1051523);
       n = md5_ii(n, m, l, o, p[g + 1], 21, -2054922799);
       o = md5_ii(o, n, m, l, p[g + 8], 6, 1873313359);
       l = md5_ii(l, o, n, m, p[g + 15], 10, -30611744);
       m = md5_ii(m, l, o, n, p[g + 6], 15, -1560198380);
       n = md5_ii(n, m, l, o, p[g + 13], 21, 1309151649);
       o = md5_ii(o, n, m, l, p[g + 4], 6, -145523070);
       l = md5_ii(l, o, n, m, p[g + 11], 10, -1120210379);
       m = md5_ii(m, l, o, n, p[g + 2], 15, 718787259);
       n = md5_ii(n, m, l, o, p[g + 9], 21, -343485551);
       o = safe_add(o, j);
       n = safe_add(n, h);
       m = safe_add(m, f);
       l = safe_add(l, e)
   }
   return Array(o, n, m, l)
}
function md5_cmn(h, e, d, c, g, f) {
   return safe_add(bit_rol(safe_add(safe_add(e, h), safe_add(c, f)), g), d)
}
function md5_ff(g, f, k, j, e, i, h) {
   return md5_cmn((f & k) | ((~f) & j), g, f, e, i, h)
}
function md5_gg(g, f, k, j, e, i, h) {
   return md5_cmn((f & j) | (k & (~j)), g, f, e, i, h)
}
function md5_hh(g, f, k, j, e, i, h) {
   return md5_cmn(f ^ k ^ j, g, f, e, i, h)
}
function md5_ii(g, f, k, j, e, i, h) {
   return md5_cmn(k ^ (f | (~j)), g, f, e, i, h)
}
function safe_add(a, d) {
   var c = (a & 65535) + (d & 65535);
   var b = (a >> 16) + (d >> 16) + (c >> 16);
   return (b << 16) | (c & 65535)
}
function bit_rol(a, b) {
   return (a << b) | (a >>> (32 - b))
};

怎么用js在客户端实现MD5加密

使用下面的函数,例如varpwd=hex_md5("hello world");对"hello world"进行md5加密。

var hexcase = 0;
function hex_md5(a) {
   if (a == "") return a;
   return rstr2hex(rstr_md5(str2rstr_utf8(a)))
}
function hex_hmac_md5(a, b) {
   return rstr2hex(rstr_hmac_md5(str2rstr_utf8(a), str2rstr_utf8(b)))
}
function md5_vm_test() {
   return hex_md5("abc").toLowerCase() == "900150983cd24fb0d6963f7d28e17f72"
}
function rstr_md5(a) {
   return binl2rstr(binl_md5(rstr2binl(a), a.length * 8))
}
function rstr_hmac_md5(c, f) {
   var e = rstr2binl(c);
   if (e.length > 16) {
       e = binl_md5(e, c.length * 8)
   }
   var a = Array(16),
   d = Array(16);
   for (var b = 0; b < 16; b++) {
       a[b] = e[b] ^ 909522486;
       d[b] = e[b] ^ 1549556828
   }
   var g = binl_md5(a.concat(rstr2binl(f)), 512 + f.length * 8);
   return binl2rstr(binl_md5(d.concat(g), 512 + 128))
}
function rstr2hex(c) {
   try {
       hexcase
   } catch(g) {
       hexcase = 0
   }
   var f = hexcase ? "0123456789ABCDEF": "0123456789abcdef";
   var b = "";
   var a;
   for (var d = 0; d < c.length; d++) {
       a = c.charCodeAt(d);
       b += f.charAt((a >>> 4) & 15) + f.charAt(a & 15)
   }
   return b
}
function str2rstr_utf8(c) {
   var b = "";
   var d = -1;
   var a, e;
   while (++d < c.length) {
       a = c.charCodeAt(d);
       e = d + 1 < c.length ? c.charCodeAt(d + 1) : 0;
       if (55296 <= a && a <= 56319 && 56320 <= e && e <= 57343) {
           a = 65536 + ((a & 1023) << 10) + (e & 1023);
           d++
       }
       if (a <= 127) {
           b += String.fromCharCode(a)
       } else {
           if (a <= 2047) {
               b += String.fromCharCode(192 | ((a >>> 6) & 31), 128 | (a & 63))
           } else {
               if (a <= 65535) {
                   b += String.fromCharCode(224 | ((a >>> 12) & 15), 128 | ((a >>> 6) & 63), 128 | (a & 63))
               } else {
                   if (a <= 2097151) {
                       b += String.fromCharCode(240 | ((a >>> 18) & 7), 128 | ((a >>> 12) & 63), 128 | ((a >>> 6) & 63), 128 | (a & 63))
                   }
               }
           }
       }
   }
   return b
}
function rstr2binl(b) {
   var a = Array(b.length >> 2);
   for (var c = 0; c < a.length; c++) {
       a[c] = 0
   }
   for (var c = 0; c < b.length * 8; c += 8) {
       a[c >> 5] |= (b.charCodeAt(c / 8) & 255) << (c % 32)
   }
   return a
}
function binl2rstr(b) {
   var a = "";
   for (var c = 0; c < b.length * 32; c += 8) {
       a += String.fromCharCode((b[c >> 5] >>> (c % 32)) & 255)
   }
   return a
}
function binl_md5(p, k) {
   p[k >> 5] |= 128 << ((k) % 32);
   p[(((k + 64) >>> 9) << 4) + 14] = k;
   var o = 1732584193;
   var n = -271733879;
   var m = -1732584194;
   var l = 271733878;
   for (var g = 0; g < p.length; g += 16) {
       var j = o;
       var h = n;
       var f = m;
       var e = l;
       o = md5_ff(o, n, m, l, p[g + 0], 7, -680876936);
       l = md5_ff(l, o, n, m, p[g + 1], 12, -389564586);
       m = md5_ff(m, l, o, n, p[g + 2], 17, 606105819);
       n = md5_ff(n, m, l, o, p[g + 3], 22, -1044525330);
       o = md5_ff(o, n, m, l, p[g + 4], 7, -176418897);
       l = md5_ff(l, o, n, m, p[g + 5], 12, 1200080426);
       m = md5_ff(m, l, o, n, p[g + 6], 17, -1473231341);
       n = md5_ff(n, m, l, o, p[g + 7], 22, -45705983);
       o = md5_ff(o, n, m, l, p[g + 8], 7, 1770035416);
       l = md5_ff(l, o, n, m, p[g + 9], 12, -1958414417);
       m = md5_ff(m, l, o, n, p[g + 10], 17, -42063);
       n = md5_ff(n, m, l, o, p[g + 11], 22, -1990404162);
       o = md5_ff(o, n, m, l, p[g + 12], 7, 1804603682);
       l = md5_ff(l, o, n, m, p[g + 13], 12, -40341101);
       m = md5_ff(m, l, o, n, p[g + 14], 17, -1502002290);
       n = md5_ff(n, m, l, o, p[g + 15], 22, 1236535329);
       o = md5_gg(o, n, m, l, p[g + 1], 5, -165796510);
       l = md5_gg(l, o, n, m, p[g + 6], 9, -1069501632);
       m = md5_gg(m, l, o, n, p[g + 11], 14, 643717713);
       n = md5_gg(n, m, l, o, p[g + 0], 20, -373897302);
       o = md5_gg(o, n, m, l, p[g + 5], 5, -701558691);
       l = md5_gg(l, o, n, m, p[g + 10], 9, 38016083);
       m = md5_gg(m, l, o, n, p[g + 15], 14, -660478335);
       n = md5_gg(n, m, l, o, p[g + 4], 20, -405537848);
       o = md5_gg(o, n, m, l, p[g + 9], 5, 568446438);
       l = md5_gg(l, o, n, m, p[g + 14], 9, -1019803690);
       m = md5_gg(m, l, o, n, p[g + 3], 14, -187363961);
       n = md5_gg(n, m, l, o, p[g + 8], 20, 1163531501);
       o = md5_gg(o, n, m, l, p[g + 13], 5, -1444681467);
       l = md5_gg(l, o, n, m, p[g + 2], 9, -51403784);
       m = md5_gg(m, l, o, n, p[g + 7], 14, 1735328473);
       n = md5_gg(n, m, l, o, p[g + 12], 20, -1926607734);
       o = md5_hh(o, n, m, l, p[g + 5], 4, -378558);
       l = md5_hh(l, o, n, m, p[g + 8], 11, -2022574463);
       m = md5_hh(m, l, o, n, p[g + 11], 16, 1839030562);
       n = md5_hh(n, m, l, o, p[g + 14], 23, -35309556);
       o = md5_hh(o, n, m, l, p[g + 1], 4, -1530992060);
       l = md5_hh(l, o, n, m, p[g + 4], 11, 1272893353);
       m = md5_hh(m, l, o, n, p[g + 7], 16, -155497632);
       n = md5_hh(n, m, l, o, p[g + 10], 23, -1094730640);
       o = md5_hh(o, n, m, l, p[g + 13], 4, 681279174);
       l = md5_hh(l, o, n, m, p[g + 0], 11, -358537222);
       m = md5_hh(m, l, o, n, p[g + 3], 16, -722521979);
       n = md5_hh(n, m, l, o, p[g + 6], 23, 76029189);
       o = md5_hh(o, n, m, l, p[g + 9], 4, -640364487);
       l = md5_hh(l, o, n, m, p[g + 12], 11, -421815835);
       m = md5_hh(m, l, o, n, p[g + 15], 16, 530742520);
       n = md5_hh(n, m, l, o, p[g + 2], 23, -995338651);
       o = md5_ii(o, n, m, l, p[g + 0], 6, -198630844);
       l = md5_ii(l, o, n, m, p[g + 7], 10, 1126891415);
       m = md5_ii(m, l, o, n, p[g + 14], 15, -1416354905);
       n = md5_ii(n, m, l, o, p[g + 5], 21, -57434055);
       o = md5_ii(o, n, m, l, p[g + 12], 6, 1700485571);
       l = md5_ii(l, o, n, m, p[g + 3], 10, -1894986606);
       m = md5_ii(m, l, o, n, p[g + 10], 15, -1051523);
       n = md5_ii(n, m, l, o, p[g + 1], 21, -2054922799);
       o = md5_ii(o, n, m, l, p[g + 8], 6, 1873313359);
       l = md5_ii(l, o, n, m, p[g + 15], 10, -30611744);
       m = md5_ii(m, l, o, n, p[g + 6], 15, -1560198380);
       n = md5_ii(n, m, l, o, p[g + 13], 21, 1309151649);
       o = md5_ii(o, n, m, l, p[g + 4], 6, -145523070);
       l = md5_ii(l, o, n, m, p[g + 11], 10, -1120210379);
       m = md5_ii(m, l, o, n, p[g + 2], 15, 718787259);
       n = md5_ii(n, m, l, o, p[g + 9], 21, -343485551);
       o = safe_add(o, j);
       n = safe_add(n, h);
       m = safe_add(m, f);
       l = safe_add(l, e)
   }
   return Array(o, n, m, l)
}
function md5_cmn(h, e, d, c, g, f) {
   return safe_add(bit_rol(safe_add(safe_add(e, h), safe_add(c, f)), g), d)
}
function md5_ff(g, f, k, j, e, i, h) {
   return md5_cmn((f & k) | ((~f) & j), g, f, e, i, h)
}
function md5_gg(g, f, k, j, e, i, h) {
   return md5_cmn((f & j) | (k & (~j)), g, f, e, i, h)
}
function md5_hh(g, f, k, j, e, i, h) {
   return md5_cmn(f ^ k ^ j, g, f, e, i, h)
}
function md5_ii(g, f, k, j, e, i, h) {
   return md5_cmn(k ^ (f | (~j)), g, f, e, i, h)
}
function safe_add(a, d) {
   var c = (a & 65535) + (d & 65535);
   var b = (a >> 16) + (d >> 16) + (c >> 16);
   return (b << 16) | (c & 65535)
}
function bit_rol(a, b) {
   return (a << b) | (a >>> (32 - b))
};

vue.js 怎么设置md5加密?

本章给大家介绍关于vue中使用cookies和crypto-js如何实现密码的加密与记住密码,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

使用crypto-js加解密

第一步,安装

npm install crypto-js

第二步,在你需要的vue组件内import

import CryptoJS from "crypto-js";

第三步,使用

 // Encrypt 加密 var cipherText = CryptoJS.AES.encrypt( "my message", "secretkey123" ).toString(); console.log(cipherText) // Decrypt 解密 var bytes = CryptoJS.AES.decrypt(cipherText, "secretkey123"); var originalText = bytes.toString(CryptoJS.enc.Utf8); console.log(originalText); // 'my message'

注意这个mymessage是字符串,如果你要加密的用户id(number类型)得先转成字符串

更多使用请访问官方文档

记住密码

  1. 实现原理是登录的时候,如果勾选了记住密码(把‘记住密码’状态保存到localstorage)就保存账号密码到cookies;

  2. 之后进入登录页面的时候,判断是否记住了密码(从localstorage判断),如果记住密码则导出cookies到表单;

其中保存使用setcookie方法,取出则使用getcookie方法。
ok,我们来编写方法

//设置cookie setCookie(portId, psw, exdays) { // Encrypt,加密账号密码 var cipherPortId = CryptoJS.AES.encrypt( portId+'', "secretkey123" ).toString(); var cipherPsw = CryptoJS.AES.encrypt(psw+'', "secretkey123").toString(); console.log(cipherPortId+'/'+cipherPsw)//打印一下看看有没有加密成功 var exdate = new Date(); //获取时间 exdate.setTime(exdate.getTime() + 24 * 60 * 60 * 1000 * exdays); //保存的天数 //字符串拼接cookie,为什么这里用了==,因为加密后的字符串也有个=号,影响下面getcookie的字符串切割,你也可以使用更炫酷的符号。 window.document.cookie = "currentPortId" + "==" + cipherPortId + ";path=/;expires=" + exdate.toGMTString(); window.document.cookie = "password" + "==" + cipherPsw + ";path=/;expires=" + exdate.toGMTString(); }, //读取cookie getCookie: function() { if (document.cookie.length > 0) { var arr = document.cookie.split("; "); //这里显示的格式请根据自己的代码更改 for (var i = 0; i < arr.length; i++) { var arr2 = arr[i].split("=="); //根据==切割 //判断查找相对应的值 if (arr2[0] == "currentPortId") { // Decrypt,将解密后的内容赋值给账号 var bytes = CryptoJS.AES.decrypt(arr2[1], "secretkey123"); this.currentPortId = bytes.toString(CryptoJS.enc.Utf8)-0; } else if (arr2[0] == "password") { // Decrypt,将解密后的内容赋值给密码 var bytes = CryptoJS.AES.decrypt(arr2[1], "secretkey123"); this.password = bytes.toString(CryptoJS.enc.Utf8); } } } }, //清除cookie clearCookie: function() { this.setCookie("", "", -1); }

登录的方法如下:

 login() { this.$http //请根据实际情况修改该方法 .post(...) .then(res => { if (res.data.code == "success") { if (this.rememberPsw == true) { //判断用户是否勾选了记住密码选项rememberPsw,传入保存的账号currentPortId,密码password,天数30 this.setCookie(this.currentPortId, this.password, 30); }else{ this.clearCookie(); } //这里是因为要在created中判断,所以使用了localstorage比较简单,当然你也可以直接根据cookie的长度or其他骚操作来判断有没有记住密码。 localStorage.setItem("rememberPsw", this.rememberPsw); } else { //---- } }) .catch(err => { //---- }); },

最后要在created狗子函数内判断用户是否记住了密码来执行相关的操作

//判断是否记住密码//**注意这里的true是字符串格式,因为Boolean存进localstorage中会变成String** created() { //判断是否记住密码 if (localStorage.getItem("rememberPsw") == 'true') { this.getCookie(); } }

最后,界面贴上,其中rememberPsw是记住密码按钮的v-model值,currentPortId是第一个框的v-model值,password就是第二个框的v-model值啦。

1349316022-5ba3113b12f2e_articlex.png

vue.js 怎么设置md5加密?

本章给大家介绍关于vue中使用cookies和crypto-js如何实现密码的加密与记住密码,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

使用crypto-js加解密

第一步,安装

npm install crypto-js

第二步,在你需要的vue组件内import

import CryptoJS from "crypto-js";

第三步,使用

 // Encrypt 加密 var cipherText = CryptoJS.AES.encrypt( "my message", "secretkey123" ).toString(); console.log(cipherText) // Decrypt 解密 var bytes = CryptoJS.AES.decrypt(cipherText, "secretkey123"); var originalText = bytes.toString(CryptoJS.enc.Utf8); console.log(originalText); // 'my message'

注意这个mymessage是字符串,如果你要加密的用户id(number类型)得先转成字符串

更多使用请访问官方文档

记住密码

  1. 实现原理是登录的时候,如果勾选了记住密码(把‘记住密码’状态保存到localstorage)就保存账号密码到cookies;

  2. 之后进入登录页面的时候,判断是否记住了密码(从localstorage判断),如果记住密码则导出cookies到表单;

其中保存使用setcookie方法,取出则使用getcookie方法。
ok,我们来编写方法

//设置cookie setCookie(portId, psw, exdays) { // Encrypt,加密账号密码 var cipherPortId = CryptoJS.AES.encrypt( portId+'', "secretkey123" ).toString(); var cipherPsw = CryptoJS.AES.encrypt(psw+'', "secretkey123").toString(); console.log(cipherPortId+'/'+cipherPsw)//打印一下看看有没有加密成功 var exdate = new Date(); //获取时间 exdate.setTime(exdate.getTime() + 24 * 60 * 60 * 1000 * exdays); //保存的天数 //字符串拼接cookie,为什么这里用了==,因为加密后的字符串也有个=号,影响下面getcookie的字符串切割,你也可以使用更炫酷的符号。 window.document.cookie = "currentPortId" + "==" + cipherPortId + ";path=/;expires=" + exdate.toGMTString(); window.document.cookie = "password" + "==" + cipherPsw + ";path=/;expires=" + exdate.toGMTString(); }, //读取cookie getCookie: function() { if (document.cookie.length > 0) { var arr = document.cookie.split("; "); //这里显示的格式请根据自己的代码更改 for (var i = 0; i < arr.length; i++) { var arr2 = arr[i].split("=="); //根据==切割 //判断查找相对应的值 if (arr2[0] == "currentPortId") { // Decrypt,将解密后的内容赋值给账号 var bytes = CryptoJS.AES.decrypt(arr2[1], "secretkey123"); this.currentPortId = bytes.toString(CryptoJS.enc.Utf8)-0; } else if (arr2[0] == "password") { // Decrypt,将解密后的内容赋值给密码 var bytes = CryptoJS.AES.decrypt(arr2[1], "secretkey123"); this.password = bytes.toString(CryptoJS.enc.Utf8); } } } }, //清除cookie clearCookie: function() { this.setCookie("", "", -1); }

登录的方法如下:

 login() { this.$http //请根据实际情况修改该方法 .post(...) .then(res => { if (res.data.code == "success") { if (this.rememberPsw == true) { //判断用户是否勾选了记住密码选项rememberPsw,传入保存的账号currentPortId,密码password,天数30 this.setCookie(this.currentPortId, this.password, 30); }else{ this.clearCookie(); } //这里是因为要在created中判断,所以使用了localstorage比较简单,当然你也可以直接根据cookie的长度or其他骚操作来判断有没有记住密码。 localStorage.setItem("rememberPsw", this.rememberPsw); } else { //---- } }) .catch(err => { //---- }); },

最后要在created狗子函数内判断用户是否记住了密码来执行相关的操作

//判断是否记住密码//**注意这里的true是字符串格式,因为Boolean存进localstorage中会变成String** created() { //判断是否记住密码 if (localStorage.getItem("rememberPsw") == 'true') { this.getCookie(); } }

最后,界面贴上,其中rememberPsw是记住密码按钮的v-model值,currentPortId是第一个框的v-model值,password就是第二个框的v-model值啦。

1349316022-5ba3113b12f2e_articlex.png

介绍一点js加密的方法

一:最简单的加密解密

大家对于JAVASCRIPT函数escape()和unescape()想必是比较了解啦(很多网页加密在用它们),分别是编码和解码字符串,比如例子代码用escape()函数加密后变为如下格式:

alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

如何?还看的懂吗?当然其中的ASCII字符"alert"并没有被加密,如果愿意我们可以写点JAVASCRIPT代码重新把它加密如下:

%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B

呵呵!如何?这次是完全都加密了!

当然,这样加密后的代码是不能直接运行的,幸好还有eval(codeString)可用,这个函数的作用就是检查JavaScript代码并执行,必选项 codeString 参数是包含有效 JavaScript 代码的字符串值,加上上面的解码unescape(),加密后的结果如下:

<SCRIPT LANGUAGE="JavaScript">

var code=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B");

eval(code)

</SCRIPT>

是不是很简单?不要高兴,解密也就同样的简单,解密代码都摆给别人啦(unescape())!呵呵

二:转义字符"\"的妙用

大家可能对转义字符"\"不太熟悉,但对于JavaScript提供了一些特殊字符如:\n (换行)、 \r (回车)、\' (单引号 )等应该是有所了解的吧?其实"\"后面还可以跟八进制或十六进制的数字,如字符"a"则可以表示为:"\141"或"\x61"(注意是小写字符"x"),至于双字节字符如汉字"黑"则仅能用十六进制表示为"\u9ED1"(注意是小写字符"u"),其中字符"u"表示是双字节字符,根据这个原理例子代码则可以表示为:

八进制转义字符串如下:

<SCRIPT LANGUAGE="JavaScript">

eval("\141\154\145\162\164\50\42\u9ED1\u5BA2\u9632\u7EBF\42\51\73")

</SCRIPT>

十六进制转义字符串如下:

<SCRIPT LANGUAGE="JavaScript">

eval("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B")

</SCRIPT>

这次没有了解码函数,因为JavaScript执行时会自行转换,同样解码也是很简单如下:

<SCRIPT LANGUAGE="JavaScript">

alert("\x61\x6C\x65\x72\x74\x28\x22\u9ED1\u5BA2\u9632\u7EBF\x22\x29\x3B")

</SCRIPT>

就会弹出对话框告诉你解密后的结果!

网页用js md5加密

引用了md5.js,你可以去看看md5.js源代码,那就是md5算法

网页用js md5加密

引用了md5.js,你可以去看看md5.js源代码,那就是md5算法

前端js 加密解密方式

一、base64加密

使用JS函数的window.btoa()和 window.atob(),分别是编码和解码

二、编码和解码字符串

使用JS函数的escape()和unescape(),分别是编码和解码

三、AES加密解密

四、RSA加密解密

js 如何进行MD5处理 小写32位!

<title>MD5加密函数</title>

<input id=test value=.com>

<input type=button value=md5 onclick="alert(hex_md5(test.value))">

<script>

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, -1473231341);

    b = md5_ff(b, c, d, a, x[i+ 7], 22, -45705983);

    a = md5_ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);

    d = md5_ff(d, a, b, c, x[i+ 9], 12, -1958414417);

    c = md5_ff(c, d, a, b, x[i+10], 17, -42063);

    b = md5_ff(b, c, d, a, x[i+11], 22, -1990404162);

    a = md5_ff(a, b, c, d, x[i+12], 7 ,  1804603682);

    d = md5_ff(d, a, b, c, x[i+13], 12, -40341101);

    c = md5_ff(c, d, a, b, x[i+14], 17, -1502002290);

    b = md5_ff(b, c, d, a, x[i+15], 22,  1236535329);

    a = md5_gg(a, b, c, d, x[i+ 1], 5 , -165796510);

    d = md5_gg(d, a, b, c, x[i+ 6], 9 , -1069501632);

    c = md5_gg(c, d, a, b, x[i+11], 14,  643717713);

    b = md5_gg(b, c, d, a, x[i+ 0], 20, -373897302);

    a = md5_gg(a, b, c, d, x[i+ 5], 5 , -701558691);

    d = md5_gg(d, a, b, c, x[i+10], 9 ,  38016083);

    c = md5_gg(c, d, a, b, x[i+15], 14, -660478335);

    b = md5_gg(b, c, d, a, x[i+ 4], 20, -405537848);

    a = md5_gg(a, b, c, d, x[i+ 9], 5 ,  568446438);

    d = md5_gg(d, a, b, c, x[i+14], 9 , -1019803690);

    c = md5_gg(c, d, a, b, x[i+ 3], 14, -187363961);

    b = md5_gg(b, c, d, a, x[i+ 8], 20,  1163531501);

    a = md5_gg(a, b, c, d, x[i+13], 5 , -1444681467);

    d = md5_gg(d, a, b, c, x[i+ 2], 9 , -51403784);

    c = md5_gg(c, d, a, b, x[i+ 7], 14,  1735328473);

    b = md5_gg(b, c, d, a, x[i+12], 20, -1926607734);

    a = md5_hh(a, b, c, d, x[i+ 5], 4 , -378558);

    d = md5_hh(d, a, b, c, x[i+ 8], 11, -2022574463);

    c = md5_hh(c, d, a, b, x[i+11], 16,  1839030562);

    b = md5_hh(b, c, d, a, x[i+14], 23, -35309556);

    a = md5_hh(a, b, c, d, x[i+ 1], 4 , -1530992060);

    d = md5_hh(d, a, b, c, x[i+ 4], 11,  1272893353);

    c = md5_hh(c, d, a, b, x[i+ 7], 16, -155497632);

    b = md5_hh(b, c, d, a, x[i+10], 23, -1094730640);

    a = md5_hh(a, b, c, d, x[i+13], 4 ,  681279174);

    d = md5_hh(d, a, b, c, x[i+ 0], 11, -358537222);

    c = md5_hh(c, d, a, b, x[i+ 3], 16, -722521979);

    b = md5_hh(b, c, d, a, x[i+ 6], 23,  76029189);

    a = md5_hh(a, b, c, d, x[i+ 9], 4 , -640364487);

    d = md5_hh(d, a, b, c, x[i+12], 11, -421815835);

    c = md5_hh(c, d, a, b, x[i+15], 16,  530742520);

    b = md5_hh(b, c, d, a, x[i+ 2], 23, -995338651);

    a = md5_ii(a, b, c, d, x[i+ 0], 6 , -198630844);

    d = md5_ii(d, a, b, c, x[i+ 7], 10,  1126891415);

    c = md5_ii(c, d, a, b, x[i+14], 15, -1416354905);

    b = md5_ii(b, c, d, a, x[i+ 5], 21, -57434055);

    a = md5_ii(a, b, c, d, x[i+12], 6 ,  1700485571);

    d = md5_ii(d, a, b, c, x[i+ 3], 10, -1894986606);

    c = md5_ii(c, d, a, b, x[i+10], 15, -1051523);

    b = md5_ii(b, c, d, a, x[i+ 1], 21, -2054922799);

    a = md5_ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);

    d = md5_ii(d, a, b, c, x[i+15], 10, -30611744);

    c = md5_ii(c, d, a, b, x[i+ 6], 15, -1560198380);

    b = md5_ii(b, c, d, a, x[i+13], 21,  1309151649);

    a = md5_ii(a, b, c, d, x[i+ 4], 6 , -145523070);

    d = md5_ii(d, a, b, c, x[i+11], 10, -1120210379);

    c = md5_ii(c, d, a, b, x[i+ 2], 15,  718787259);

    b = md5_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 Array(a, b, c, d);

  

}

function md5_cmn(q, a, b, x, s, t)

{

  return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);

}

function md5_ff(a, b, c, d, x, s, t)

{

  return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);

}

function md5_gg(a, b, c, d, x, s, t)

{

  return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);

}

function md5_hh(a, b, c, d, x, s, t)

{

  return md5_cmn(b ^ c ^ d, a, b, x, s, t);

}

function md5_ii(a, b, c, d, x, s, t)

{

  return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);

}

function core_hmac_md5(key, data)

{

  var bkey = str2binl(key);

  if(bkey.length > 16) bkey = core_md5(bkey, key.length * chrsz);

  var ipad = Array(16), opad = Array(16);

  for(var i = 0; i < 16; i++) 

  {

    ipad[i] = bkey[i] ^ 0x36363636;

    opad[i] = bkey[i] ^ 0x5C5C5C5C;

  }

  var hash = core_md5(ipad.concat(str2binl(data)), 512 + data.length * chrsz);

  return core_md5(opad.concat(hash), 512 + 128);

}

function safe_add(x, y)

{

  var lsw = (x & 0xFFFF) + (y & 0xFFFF);

  var msw = (x >> 16) + (y >> 16) + (lsw >> 16);

  return (msw << 16) | (lsw & 0xFFFF);

}

function bit_rol(num, cnt)

{

  return (num << cnt) | (num >>> (32 - cnt));

}

function str2binl(str)

{

  var bin = Array();

  var mask = (1 << chrsz) - 1;

  for(var i = 0; i < str.length * chrsz; i += chrsz)

    bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32);

  return bin;

}

function binl2hex(binarray)

{

  var hex_tab = hexcase ? "0123456789ABCDEF" : "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;

}

function binl2b64(binarray)

{

  var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";

  var str = "";

  for(var i = 0; i < binarray.length * 4; i += 3)

  {

    var triplet = (((binarray[i   >> 2] >> 8 * ( i   %4)) & 0xFF) << 16)

                | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 )

                |  ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF);

    for(var j = 0; j < 4; j++)

    {

      if(i * 8 + j * 6 > binarray.length * 32) str += b64pad;

      else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);

    }

  }

  return str;

}

</script>

欢乐泡美食网还为您提供以下相关内容希望对您有帮助:

浅谈如何通过node.js对数据进行MD5加密

本篇文章将主要针对于在NODE.JS中如何对数据进行MD5加密:直接在NODE中引入md5依赖包:下载安装md5依赖包npm install md5md5加密实例:var md5 =require("md5");//设置加密字符串var passWord="if(1==1){console.log('...

vue.js 怎么设置md5加密?

一,有关于JS md5加密:下载包:1:md5.js ;2: md4.js ;3: sha1.js。二,使用MD5加密的方法:下载md5.js文件,在网页中引用该文件:&lt; script type="text/javascript" src="md5.js"&gt;&lt; /script&gt; 三,...

介绍一点js加密的方法

1、base64加密在页面中引入base64.js文件,调用方法为: var b = new Base64(); var str = b.encode("admin:admin"); alert("base64 encode:" + str); str = b.decode(str); alert("base64...

网页用js md5加密

引用了md5.js,你可以去看看md5.js源代码,那就是md5算法

前端js 加密解密方式

一、base64加密 使用JS函数的window.btoa()和 window.atob(),分别是编码和解码 二、编码和解码字符串 使用JS函数的escape()和unescape(),分别是编码和解码 三、AES加密解密 四、RSA加密解密 ...

介绍一点js加密的方法

一:最简单的加密解密 大家对于JAVASCRIPT函数escape()和unescape()想必是比较了解啦(很多网页加密在用它们),分别是编码和解码字符串,比如例子代码用escape()函数加密后变为如下格式:alert%28%22%u9ED1%u5BA2%u9632%u7E...

md5.js用法

这是专门破解MD5密码的网站 :www.cmd5.comMD5加密算法简介 一、综述 MD5的全称是message-digest algorithm 5(信息-摘要算法),在90年代初由mit laboratory for computer science和rsa data security inc的ronald l. rivest开发出来,经md2...

如何在前端调用js对密码进行加密

没意义啊。如果一定要在前端加密,可以这样:

java的md5的加密算法代码

* 加密方法 * 调用方式: * MD5 md = new MD5(); * String code = md.toDigest("加密参数"); * code就是加密后的密文 */ public String toDigest(String src) { byte digest[] = toDigest(src.getBytes()); StringBuf...

JS加密方法

一:最简单的加密解密 大家对于JAVASCRIPT函数escape()和unescape()想必是比较了解啦(很多网页加密在用它们),分别是编码和解码字符串,比如例子代码用escape()函数加密后变为如下格式:alert%28%22%u9ED1%u5BA2%u9632%u7E...

Top