JavaScript base64 加密解密
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>www.jb51.net aes.js</title>
</head> <body>
<script>
// Create Base64 Objectvar
Base64 = {
_keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
encode: function (e) {
var t = "";
var n, r, i, s, o, u, a;
var f = ;
e = Base64._utf8_encode(e);
while (f < e.length) {
n = e.charCodeAt(f++);
r = e.charCodeAt(f++);
i = e.charCodeAt(f++);
s = n >> ;
o = (n & ) << | r >> ;
u = (r & ) << | i >> ;
a = i & ;
if (isNaN(r)) {
u = a =
} else if (isNaN(i)) {
a =
}
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 = ;
e = e.replace(/[^A-Za-z0-+/=]/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 << | o >> ;
r = (o & ) << | u >> ;
i = (u & ) << | a;
t = t + String.fromCharCode(n);
if (u != ) {
t = t + String.fromCharCode(r)
}
if (a != ) {
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 = ; n < e.length; n++) {
var r = e.charCodeAt(n);
if (r < ) {
t += String.fromCharCode(r)
} else if (r > && r < ) {
t += String.fromCharCode(r >> | );
t += String.fromCharCode(r & | )
} else {
t += String.fromCharCode(r >> | );
t += String.fromCharCode(r >> & | );
t += String.fromCharCode(r & | )
}
}
return t
}, _utf8_decode: function (e) {
var t = "";
var n = ;
var r = c1 = c2 = ;
while (n < e.length) {
r = e.charCodeAt(n);
if (r < ) {
t += String.fromCharCode(r);
n++
} else if (r > && r < ) {
c2 = e.charCodeAt(n + );
t += String.fromCharCode((r & ) << | c2 & );
n +=
} else {
c2 = e.charCodeAt(n + );
c3 = e.charCodeAt(n + );
t += String.fromCharCode((r & ) << | (c2 & ) << | c3 & );
n +=
}
}
return t
}
} // Define the string
var string = 'Hello World!';
// Encode the String
var encodedString = Base64.encode(string);
console.log(encodedString); // Outputs: "SGVsbG8gV29ybGQh"
// Decode the String
var decodedString = Base64.decode(encodedString);
console.log(decodedString); // Outputs: "Hello World!" //这个自定义的Base64对象可以转码的字符也不仅限于Latin1字符;
var string = "Hello, ccccc!";
var encodedString = Base64.encode(string);//"SGVsbG8sIOS4reWbve+8gQ=="
console.log(encodedString);
var decodedString = Base64.decode(encodedString);
console.log(decodedString);
console.log("hahahhaha");
</script> </body>
</html>
使用python解密
>>> import base64
>>> base64.b64decode("SGVsbG8sIGNjY2Nj77yB").decode()
'Hello, ccccc!'
>>> base64.b64decode("SGVsbG8sIGNjY2Nj77yB").decode("utf-8")
'Hello, ccccc!'
参考:
https://www.cnblogs.com/songzhixue/p/11253243.html
https://www.cnblogs.com/chenglee/p/9037265.html
https://www.cnblogs.com/sunyuweb/p/9092367.html
JavaScript base64 加密解密的更多相关文章
- Javascript base64加密 解密
var base64encodechars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" ...
- Javascript Base64加密解密代码
<script language="javascript" runat="server"> var keyStr = "ABCDEFGHI ...
- JS实现base64加密解密
JS实现base64加密解密 转载自http://blog.csdn.net/fengzheng0306/archive/2006/04/25/676055.aspx 方法一: <HTML> ...
- django删除表重建&修改用户密码&base64加密解密字符串&ps aux参数说明&各种Error例子
1.django的queryset不支持负索引 AssertionError: Negative indexing is not supported. 2.django向前端JavaScript传递列 ...
- 【代码笔记】iOS-3DES+Base64加密解密
一,工程目录. 二,代码. RootViewController.m #import "RootViewController.h" #import "NSString+T ...
- 实现Base64加密解密
using System; using System.Text; namespace Common { /// <summary> /// 实现Base64加密解密 /// </ ...
- Java中使用BASE64加密&解密
package com.bao.tools.encryption; import java.io.IOException; import org.junit.Test; import sun.misc ...
- Base64加密解密原理以及代码实现(VC++)
Base64加密解密原理以及代码实现 转自:http://blog.csdn.net/jacky_dai/article/details/4698461 1. Base64使用A--Z,a--z,0- ...
- Java Base64 加密解密
使用JDK的类 BASE64Decoder BASE64Encoder package test; import sun.misc.BASE64Decoder; import sun.misc.BA ...
随机推荐
- 【转载】如何查看本机电脑的公网IP
在实际使用电脑的过程中,很多时候我们需要知道本地电脑的当前公网IP地址,我们都知道个人电脑的公网IP是不固定的,可能每天的对外公网IP都不一样,如果要查看当前本机电脑的对外公网IP,方法也很简单,直接 ...
- 使用input的file进行上传进行预览
在使用file上传文件的时候,想到了图片预览的功能,然后查询了一些资料,一种是需要后端配合,将数据变成base64或者buff等数据传给后端然后调取接口进行显示,但是这种需要后端的配合和网络请求,感觉 ...
- cmd查找并杀死被占用的端口的进程
java开发启动server的时候经常会遇到端口被占用的错误提示, 如果不想更换服务配置的端口号,那么怎么解决端口被占用的情况呢? 1. cmd窗口输入netstat -ano ,在列表中查看被占用的 ...
- Java 数组(二)基本操作
一.数组的基本操作 1.数组遍历[重点] 数组遍历:就是将数组中的每个元素分别获取出来,就是遍历.遍历也是数组操作中的基石. 方式一:使用索引下标方式 int[] array = { 15, 25, ...
- CSS 初识
一.CSS 发展历程 从HTML被发明开始,样式就以各种形式存在.不同的浏览器结合它们各自的样式语言为用户提供页面效果的控制.最初的HTML只包含很少的显示属性. 随着HTML的成长,为了满足页面设计 ...
- 单词diamaund钻石diamaund英文
Diamond Di"a*mond (?; 277), n. [OE. diamaund, the hardest iron, steel, diamond, Gr. . Perh. the ...
- Java垃圾回收_过程观察
这是今天看JVM垃圾回收的时候做的实验观察. 使用工具:Java VisualVM.VisualVM GC插件 观察应用:Tomcat容器中的Web服务 1. Java VisualVM 在tomca ...
- windows系统获取进程的pid号并终止
,,,* delims= " %a in ('tasklist ^| findstr "AutodeskDesktopApp.exe"') do (set commitd ...
- 执行shell脚本时提示/bin/sh^M: bad interpreter: No such file or directory
执行脚本时提示解释器有问题,错误提示如下: 这种提示一般是脚本在windows系统之通过记事本写的,记事本修改过的文本,会默认在文本前面加上一些看不到的标记,导致shell脚本不能被shell解释器识 ...
- 浅谈Flask 中的 线程局部变量 request 原理
2017-11-27 17:25:11 晚橙 阅读数 600更多 分类专栏: Flask python 多线程 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出 ...