首页 > 编程 > JavaScript > 正文

JS实现的base64加密解密操作示例

2019-11-19 14:00:22
字体:
来源:转载
供稿:网友

本文实例讲述了JS实现的base64加密解密操作。分享给大家供大家参考,具体如下:

<!DOCTYPE html><html><head><meta charset="utf-8" /><title>js base64加密解密</title></head><body><script>// 创建Base64对象var Base64 = { _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", encode: function(e) {  var t = "";  var n, r, i, s, o, u, a;  var f = 0;  e = Base64._utf8_encode(e);  while (f < e.length) {   n = e.charCodeAt(f++);   r = e.charCodeAt(f++);   i = e.charCodeAt(f++);   s = n >> 2;   o = (n & 3) << 4 | r >> 4;   u = (r & 15) << 2 | i >> 6;   a = i & 63;   if (isNaN(r)) {    u = a = 64   } else if (isNaN(i)) {    a = 64   }   t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a)  }  return t }, decode: function(e) {  var t = "";  var n, r, i;  var s, o, u, a;  var f = 0;  e=e.replace(/[^A-Za-z0-9+/=]/g,"");  while (f < e.length) {   s = this._keyStr.indexOf(e.charAt(f++));   o = this._keyStr.indexOf(e.charAt(f++));   u = this._keyStr.indexOf(e.charAt(f++));   a = this._keyStr.indexOf(e.charAt(f++));   n = s << 2 | o >> 4;   r = (o & 15) << 4 | u >> 2;   i = (u & 3) << 6 | a;   t = t + String.fromCharCode(n);   if (u != 64) {    t = t + String.fromCharCode(r)   }   if (a != 64) {    t = t + String.fromCharCode(i)   }  }  t = Base64._utf8_decode(t);  return t }, _utf8_encode: function(e) {  e = e.replace(/rn/g, "n");  var t = "";  for (var n = 0; n < e.length; n++) {   var r = e.charCodeAt(n);   if (r < 128) {    t += String.fromCharCode(r)   } else if (r > 127 && r < 2048) {    t += String.fromCharCode(r >> 6 | 192);    t += String.fromCharCode(r & 63 | 128)   } else {    t += String.fromCharCode(r >> 12 | 224);    t += String.fromCharCode(r >> 6 & 63 | 128);    t += String.fromCharCode(r & 63 | 128)   }  }  return t }, _utf8_decode: function(e) {  var t = "";  var n = 0;  var r = c1 = c2 = 0;  while (n < e.length) {   r = e.charCodeAt(n);   if (r < 128) {    t += String.fromCharCode(r);    n++   } else if (r > 191 && r < 224) {    c2 = e.charCodeAt(n + 1);    t += String.fromCharCode((r & 31) << 6 | c2 & 63);    n += 2   } else {    c2 = e.charCodeAt(n + 1);    c3 = e.charCodeAt(n + 2);    t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63);    n += 3   }  }  return t }}// 定义字符串var string = 'Hello World!';// 加密var encodedString = Base64.encode(string);console.log(encodedString); // 输出: "SGVsbG8gV29ybGQh"// 解密var decodedString = Base64.decode(encodedString);console.log(decodedString); // 输出: "Hello World!"</script></body></html>

运行结果:

PS:这里再推荐几款加密解密相关在线工具供大家参考使用:

在线编码转换工具(utf-8/utf-32/Punycode/Base64):
http://tools.VeVB.COm/transcoding/decode_encode_tool

BASE64编码解码工具:
http://tools.VeVB.COm/transcoding/base64

图片转换为Base64编码在线工具:
http://tools.VeVB.COm/transcoding/img2base64

更多关于JavaScript相关内容可查看本站专题:《JavaScript加密解密技巧汇总》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

希望本文所述对大家JavaScript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表