<!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 加密解密的更多相关文章

  1. Javascript base64加密 解密

    var base64encodechars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" ...

  2. Javascript Base64加密解密代码

    <script language="javascript" runat="server"> var keyStr = "ABCDEFGHI ...

  3. JS实现base64加密解密

    JS实现base64加密解密 转载自http://blog.csdn.net/fengzheng0306/archive/2006/04/25/676055.aspx 方法一: <HTML> ...

  4. django删除表重建&修改用户密码&base64加密解密字符串&ps aux参数说明&各种Error例子

    1.django的queryset不支持负索引 AssertionError: Negative indexing is not supported. 2.django向前端JavaScript传递列 ...

  5. 【代码笔记】iOS-3DES+Base64加密解密

    一,工程目录. 二,代码. RootViewController.m #import "RootViewController.h" #import "NSString+T ...

  6. 实现Base64加密解密

    using System; using System.Text;   namespace Common { /// <summary> /// 实现Base64加密解密 /// </ ...

  7. Java中使用BASE64加密&解密

    package com.bao.tools.encryption; import java.io.IOException; import org.junit.Test; import sun.misc ...

  8. Base64加密解密原理以及代码实现(VC++)

    Base64加密解密原理以及代码实现 转自:http://blog.csdn.net/jacky_dai/article/details/4698461 1. Base64使用A--Z,a--z,0- ...

  9. Java Base64 加密解密

    使用JDK的类 BASE64Decoder  BASE64Encoder package test; import sun.misc.BASE64Decoder; import sun.misc.BA ...

随机推荐

  1. win10环境变量PATH——路径添加

    我的电脑---->属性---->环境变量---->系统变量,选择path,点击“编辑”,“新建”,然后将路径添加上去即可

  2. tf.assign_add

    import tensorflow as tf global_step = tf.Variable(1.0, dtype=tf.float64, trainable=False, name='glob ...

  3. SpringBoot与SpringDateJPA和Mybatis的整合

    一.SpringBoot与SpringDateJPA的整合 1-1.需求 查询数据库---->得到数据------>展示到页面上 1-2.整合步骤 1-2-1.创建SpringBoot工程 ...

  4. WDA演练一:用户登陆界面设计(一)

    一,新建用户表: 用户和密码参考标准的.这里给用户分了几个维度,以便后面进行接下来的业务设定. 二,新建ZLY_PORTAL 程序. 除了MAIN视图外,在添加LOGON视图. 1.导入预先做好的主页 ...

  5. C# 7可以在.NET Framework 4上运行吗?

    https://stackoverflow.com/questions/42482520/does-c-sharp-7-0-work-for-net-4-5 To sum up: All of C# ...

  6. ML-软间隔(slack)的 SVM

    Why Slack? 为了处理异常值(outlier). 前面推导的svm形式, 是要求严格地全部分对, 基于该情况下, 在margin 的边界线 线上的点, 只能是支持向量. \(min_w \ \ ...

  7. ML-对偶(Duality)问题 KKT 条件

    Primal => Dual 现实中我们遇到的原优化问题, 写为标准型的话是这样的. \(min _w f(w) \\ s.t. \\ g_i(w) <=0 \\ h_i(w) = 0\) ...

  8. golang测试

    简述 Go语言中自带有一个轻量级的测试框架testing和自带的go test命令来实现单元测试和性能测试. go test [-c] [-i] [build flags] [packages] [f ...

  9. 【解决】k8s 1.15.2 镜像下载方案

    k8s 国内镜像下载方案 众所周知,国内是不太容易下载k8s.gcr.io站点的镜像的 一.第一种方案:Azure中国镜像站 http://mirror.azure.cn/help/gcr-proxy ...

  10. sudo apt update报错

    在Ubuntu系统下,使用sudo apt-get update有时会出现“W: 无法下载 http://cn.archive.ubuntu.com/ubuntu/.... 校验和不符”, xj@xj ...