本篇文章给大家分享的是jJavaScript实现Base64编码与解码的代码详解,内容挺不错的,希望可以帮助到有需要的朋友

一、加密解密方法使用//1.加密 var str = '124中文内容';

var base = new Base64();

var result = base.encode(str);

//document.write(result); //2.解密 var result2 = base.decode(result);

document.write(result2);

二、加密、解密算法封装:/**

*

* Base64 encode / decode

*

* @author haitao.tu

* @date 2010-04-26

* @email tuhaitao@foxmail.com

*

*/function Base64() {

// private property

_keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

// public method for encoding

this.encode = function (input) {

var output = "";

var chr1, chr2, chr3, enc1, enc2, enc3, enc4;

var i = 0;

input = _utf8_encode(input);

while (i < input.length) {

chr1 = input.charCodeAt(i++);

chr2 = input.charCodeAt(i++);

chr3 = input.charCodeAt(i++);

enc1 = chr1 >> 2;

enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);

enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);

enc4 = chr3 & 63;

if (isNaN(chr2)) {

enc3 = enc4 = 64;

} else if (isNaN(chr3)) {

enc4 = 64;

}

output = output +

_keyStr.charAt(enc1) + _keyStr.charAt(enc2) +

_keyStr.charAt(enc3) + _keyStr.charAt(enc4);

}

return output;

}

// public method for decoding

this.decode = function (input) {

var output = "";

var chr1, chr2, chr3;

var enc1, enc2, enc3, enc4;

var i = 0;

input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");

while (i < input.length) {

enc1 = _keyStr.indexOf(input.charAt(i++));

enc2 = _keyStr.indexOf(input.charAt(i++));

enc3 = _keyStr.indexOf(input.charAt(i++));

enc4 = _keyStr.indexOf(input.charAt(i++));

chr1 = (enc1 << 2) | (enc2 >> 4);

chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);

chr3 = ((enc3 & 3) << 6) | enc4;

output = output + String.fromCharCode(chr1);

if (enc3 != 64) {

output = output + String.fromCharCode(chr2);

}

if (enc4 != 64) {

output = output + String.fromCharCode(chr3);

}

}

output = _utf8_decode(output);

return output;

}

// private method for UTF-8 encoding

_utf8_encode = function (string) {

string = string.replace(/\r\n/g,"\n");

var utftext = "";

for (var n = 0; n < string.length; n++) {

var c = string.charCodeAt(n);

if (c < 128) {

utftext += String.fromCharCode(c);

} else if((c > 127) && (c < 2048)) {

utftext += String.fromCharCode((c >> 6) | 192);

utftext += String.fromCharCode((c & 63) | 128);

} else {

utftext += String.fromCharCode((c >> 12) | 224);

utftext += String.fromCharCode(((c >> 6) & 63) | 128);

utftext += String.fromCharCode((c & 63) | 128);

}

}

return utftext;

}

// private method for UTF-8 decoding

_utf8_decode = function (utftext) {

var string = "";

var i = 0;

var c = c1 = c2 = 0;

while ( i < utftext.length ) {

c = utftext.charCodeAt(i);

if (c < 128) {

string += String.fromCharCode(c);

i++;

} else if((c > 191) && (c < 224)) {

c2 = utftext.charCodeAt(i+1);

string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));

i += 2;

} else {

c2 = utftext.charCodeAt(i+1);

c3 = utftext.charCodeAt(i+2);

string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));

i += 3;

}

}

return string;

}

}

封装代码引入后使用就可以啦。

相关推荐:

js php base64,JavaScript实现Base64编码与解码的代码详解相关推荐

  1. python url解码_对python中url参数编码与解码的实例详解

    一.简介 在python中url,对于中文等非ascii码字符,需要进行参数的编码与解码. 二.关键代码 1.url编码 对字符串编码用urllib.parse包下的quote(string, saf ...

  2. nmmqq.php?/lspc.html,html中的图片直接使用base64编码后的字符串代替详解

    网页中的图片是使用base64编码后的字符串代替了,这个叫做Data URI scheme,下面有个不错的示例,大家可以参考下 最近来了一个网页,里面有图片,但是却没有引用外部的图片资源,很好奇.查看 ...

  3. js 条码枪扫描_使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解

    下面通过实例代码给大家介绍js扫码枪扫描条形码的实现方法,具体代码如下所示: var keycode = ""; var lastTime=null,nextTime; var l ...

  4. 编码、解码Html代码

    引用 Base64-80.js 文件 做网页的时候有时候需要把富文本框的html代码保存到数据库,那么就需要编码后保存到数据库.浏览器端或后台再解码作绑定 *编码:encode64(str) *解码: ...

  5. 【JavaScript 教程】ES6 中的 Promise对象 详解

    [JavaScript 教程]ES6 中的 Promise对象 详解 1.Promise对象含义 promise是异步编程的一种解决方法. 所谓promise,简单说是一个容器,里面保存着某个未来才会 ...

  6. js 浅拷贝直接赋值_JS中实现浅拷贝和深拷贝的代码详解

    (一)JS中基本类型和引用类型 JavaScript的变量中包含两种类型的值:基本类型值 和 引用类型值,在内存中的表现形式在于:前者是存储在栈中的一些简单的数据段,后者则是保存在堆内存中的一个对象. ...

  7. python 编码解码原理_Python JSON编解码方式原理详解

    这篇文章主要介绍了Python JSON编解码方式原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 概念 JSON(JavaScript Ob ...

  8. JS 中的 event?event:window.event什么意思?求详解。

    JS 中的 event?event:window.event什么意思?求详解. 2013-04-16 00:01flying607 | 分类:JavaScript |浏览813次 <script ...

  9. html5走格子游戏,JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解

    JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解 发布时间:2020-09-26 20:42:24 来源:脚本之家 阅读:112 作者:krapnik 本文实例讲述了JS/HTML5游戏常 ...

最新文章

  1. [Windows编程] 通过GetModuleHandleEx 得到函数调用者所在的DLL/EXE
  2. 设备树 xlnx-phy 使用
  3. _splitpath,_makepath分析路径
  4. 华为云中国前二,全球前五,增速第一,凭什么?
  5. ‘ping‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
  6. 【Shell系列】之shell脚本中常用句法
  7. 全局变量求平均分最高分最低分_打分函数trimmean,去掉最高最低分求平均分,用它就对了...
  8. CNN提取文本特征,融合PMF模型实现推荐系统
  9. Cubieboard通过aria2和minidlna来架设家庭媒体中心
  10. 6425C-Lab8 使用组策略管理安全性(2)
  11. 可行性研究报告计算机,台式计算机项目可行性研究报告范文.doc
  12. Crashing Balloon ZOJ1003
  13. 虚拟IP与arp协议
  14. Redis客户端工具-AnotherRedisDesktopManager
  15. Science:拟南芥根系三萜化合物塑造特异的微生物组
  16. 微软Google人才战主角首次开口:Google让我震撼(转)
  17. SpringBoot项目遇到AopAutoConfiguration matched: - @ConditionalOnProperty (spring.aop.auto=true)错误
  18. 论成长型思维的重要性
  19. bloomFilter和哈希函数murmur3
  20. Firefly的Gevent重要迭代版本alpha0.1.2推出!

热门文章

  1. 工业相机参数之帧率相关知识详解
  2. 盘点提高国内访问 GitHub 的速度的 9 种方案
  3. 年轻人的第一块金牌:我是如何成为 Kaggle 全网第一的
  4. 实战:基于深度学习的道路损坏检测
  5. 基于点云的3D障碍物检测
  6. 通俗篇:一文搞定矩阵相关概念及意义
  7. 基于Python的颜色识别器
  8. 第三篇:时间和全局状态(三)
  9. 二维“玄”如何“抖动”出三维世界?
  10. ecshop入门第一步,替换ecshop模板的显示图片