1.新建一个base64.js文件 添加下面的代码

/* Copyright (C) 1999 Masanao Izumo <iz@onicos.co.jp>
* Version: 1.0
* LastModified: Dec 25 1999
* This library is free. You can redistribute it and/or modify it.
*/ /*
* Interfaces:
* b64 = base64encode(data);
* data = base64decode(b64);
*/ var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars = new Array(-, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, -, , -, -, -, ,
, , , , , , , , , , -, -, -, -, -, -, -, , , , , , , , , , , , , , , ,
, , , , , , , , , , , -, -, -, -, -, -, , , , , , , , , , , , , , , ,
, , , , , , , , , , , -, -, -, -, -); function base64encode(str) {
var out, i, len;
var c1, c2, c3; len = str.length;
i = ;
out = "";
while (i < len) {
c1 = str.charCodeAt(i++) & 0xff;
if (i == len) {
out += base64EncodeChars.charAt(c1 >> );
out += base64EncodeChars.charAt((c1 & 0x3) << );
out += "==";
break;
}
c2 = str.charCodeAt(i++);
if (i == len) {
out += base64EncodeChars.charAt(c1 >> );
out += base64EncodeChars.charAt(((c1 & 0x3) << ) | ((c2 & 0xF0) >> ));
out += base64EncodeChars.charAt((c2 & 0xF) << );
out += "=";
break;
}
c3 = str.charCodeAt(i++);
out += base64EncodeChars.charAt(c1 >> );
out += base64EncodeChars.charAt(((c1 & 0x3) << ) | ((c2 & 0xF0) >> ));
out += base64EncodeChars.charAt(((c2 & 0xF) << ) | ((c3 & 0xC0) >> ));
out += base64EncodeChars.charAt(c3 & 0x3F);
}
return out;
} function base64decode(str) {
var c1, c2, c3, c4;
var i, len, out; len = str.length;
i = ;
out = "";
while (i < len) {
/* c1 */
do {
c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
} while (i < len && c1 == -);
if (c1 == -)
break; /* c2 */
do {
c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
} while (i < len && c2 == -);
if (c2 == -)
break; out += String.fromCharCode((c1 << ) | ((c2 & 0x30) >> )); /* c3 */
do {
c3 = str.charCodeAt(i++) & 0xff;
if (c3 == )
return out;
c3 = base64DecodeChars[c3];
} while (i < len && c3 == -);
if (c3 == -)
break; out += String.fromCharCode(((c2 & 0XF) << ) | ((c3 & 0x3C) >> )); /* c4 */
do {
c4 = str.charCodeAt(i++) & 0xff;
if (c4 == )
return out;
c4 = base64DecodeChars[c4];
} while (i < len && c4 == -);
if (c4 == -)
break;
out += String.fromCharCode(((c3 & 0x03) << ) | c4);
}
return out;
}

上面代码中的base64encode()用于编码,base64decode()用于解码。
2.在前段导入 base64.js文件

<script type="text/javascript" src="md5/base64.js"></script>

3.加密

function aa(){
sEncoded=base64encode("aa");
alert(sEncoded)
}

4.解密

function bb(){
sDecoded=base64decode("YWE=");
alert(sDecoded)
}

5.对utf-8字符进行编码要这样写:

sEncoded=base64encode(utf16to8(str));

然后,解码要这样写:

sDecoded=utf8to16(base64decode(sEncoded))

参考文献:
http://www.ruanyifeng.com/blog/2008/06/base64.html
测试
https://jsfiddle.net/gabrieleromanato/qAGHT/

最新文章

  1. SICP练习记录
  2. JAVA 设计模式 解释器模式
  3. [置顶] ArcGIS10.1完美破解步骤详细图文教程
  4. 谷歌浏览器如何设置可以解决Ajax跨域问题?
  5. 使用截图方式将Excel导出为PNG图片的不可行性
  6. 【jQuery】
  7. Android Intent入门
  8. GitLab版本管理工具
  9. 2018-02-02-解决IDE中无法忽略的非代码文件
  10. 一、网络编程-UDP传输协议及socket套接字使用
  11. Codeforces Round#500 Div.2 翻车记
  12. GIL(全局解释器锁)与互斥锁
  13. 什么是DevOps?DevOps简明教程
  14. xapian的使用
  15. 解决js中文输入法无法触发onkeyup事件问题(转)
  16. C# 一些常用的字符串扩展方法
  17. codeigniter教程:Codeigniter出现Unable to connect to your databas
  18. 问题 A: E2 驾驭const
  19. tcp回显客户端发送的数据
  20. let与const区别

热门文章

  1. 使用cocoaPods import导入时没有提示的解决办法
  2. mini2440移植uboot 2014.04(四)
  3. Spring Cloud之Feign客户端调用工具
  4. 在Delphi2007下安装ReportMachine6.5
  5. django实现用户注册、登录、退出
  6. Hibernate错误及解决办法
  7. javascript时间戳转换成指定格式的日期
  8. Docker与LXC、虚拟化技术的区别——虚拟化技术本质上是在模拟硬件,Docker底层是LXC,本质都是cgroups是在直接操作硬件
  9. npm-install once
  10. JavaUtil_01_MD5加密