JavaScript 实现的base64加密、md5加密、sha1加密及AES加密
1. Base64加密
1). js-base64
2). 安装
npm install --save js-base64
3). 使用
<!-- npm install --save js-base64 -->
<script type="text/javascript" src="base64.min.js"></script>
<script type="text/javascript">
// 加密
var str = Base64.encode("mazaiting");
console.log("base64 encode: " + str);
// 解密
str = Base64.decode(str);
console.log("base64 decode: " + str);
</script>
2. MD5加密
1). js-md5
2). 安装
npm install js-md5
3). 使用
<!-- npm install js-md5 -->
<script type="text/javascript" src="md5.min.js"></script>
<script type="text/javascript">
// 加密
var str = md5("mazaiting");
console.log("md5 encode: " + str);
</script>
3. sha1加密
1). js-sha1
2). 安装
npm install js-sha1
3). 使用
<!-- npm install js-sha1 -->
<script type="text/javascript" src="sha1.min.js"></script>
<script type="text/javascript">
// 加密
var str = sha1("mazaiting");
console.log("sha1 encode: " + str);
</script>
4. 自定义加解密
<script type="text/javascript">
// 加密
var str = compileStr("mazaiting");
console.log("escape encode: " + str);
// 解密
str = uncompileStr(str);
console.log("escape decode: " + str);
// 对字符串进行加密
function encode(code){
var c=String.fromCharCode(code.charCodeAt(0) + code.length);
for(var i = 1; i < code.length; i++) {
c += String.fromCharCode(code.charCodeAt(i) + code.charCodeAt(i - 1));
}
return escape(c);
}
// 字符串进行解密
function uncompileStr(code){
code = unescape(code);
var c = String.fromCharCode(code.charCodeAt(0)-code.length);
for(var i = 1; i < code.length; i++) {
c += String.fromCharCode(code.charCodeAt(i)-c.charCodeAt(i - 1));
}
return c;
}
</script>
5. AES加密
1). aes-js
2). 安装
npm install aes-js
3). 使用
CBC - Cipher-Block Chaining (recommended)
// An example 128-bit key
var key = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ];
// The initialization vector (must be 16 bytes)
var iv = [ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,35, 36 ];
// 加密
// Convert text to bytes (text must be a multiple of 16 bytes)
var text = 'TextMustBe16Byte';
var textBytes = aesjs.utils.utf8.toBytes(text);
var aesCbc = new aesjs.ModeOfOperation.cbc(key, iv);
var encryptedBytes = aesCbc.encrypt(textBytes);
// To print or store the binary data, you may convert it to hex
var encryptedHex = aesjs.utils.hex.fromBytes(encryptedBytes);
console.log(encryptedHex);
// "104fb073f9a131f2cab49184bb864ca2"
// 解密
// When ready to decrypt the hex string, convert it back to bytes
var encryptedBytes = aesjs.utils.hex.toBytes(encryptedHex);
// The cipher-block chaining mode of operation maintains internal
// state, so to decrypt a new instance must be instantiated.
var aesCbc = new aesjs.ModeOfOperation.cbc(key, iv);
var decryptedBytes = aesCbc.decrypt(encryptedBytes);
// Convert our bytes back into text
var decryptedText = aesjs.utils.utf8.fromBytes(decryptedBytes);
console.log(decryptedText);
// "TextMustBe16Byte"

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
配置struts-2.5.16必需jar包Struts2的特性变动
1、jar包的变动 必需jar包,旧版本: 必需jar包,新版本: 在struts-2.5.16版本的lib目录下没有xwork-core的jar包,原因是被合并到struts-core这个jar里了。所谓core嘛,当然是一个核心,原来两个合并成一个也是有道理的。 2、web.xml文件配置过滤器变动 if you are using struts2 version 2.5 you need to change from org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter to org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter 是的,去掉了中间.ng文件空间名,原因是在整合xwork的时候,同时简化了不必要的包名空间。 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSc...
-
下一篇
6月20日云栖精选夜读丨国内首家!阿里云宣布全面提供IPv6服务
IPv6作为下一代互联网的技术基础,对物联网、车联网、人工智能等新兴产业的发展有着重大影响。6月20日,中国云计算的领头羊阿里云宣布联合三大运营商全面对外提供IPv6服务,希望能在2025年前帮助中国互联网真正实现“IPv6 Only”。 热点热议 国内首家!阿里云宣布全面提供IPv6服务 作者:阿里云头条 发表在:云栖学习小组 从本科生到数据科学家,为啥这个职业门槛高? 作者:异步社区 Rich Caruana:压缩深度神经网络模型让你兼得可解释性与准确性! 作者:技术小能手 发表在:数据派THU 知识整理 Java中的路径问题 作者:codingcoge JavaScript设计模式:单例 作者:小丑丁丁 基于Hadoop的数据分析平台搭建 作者:技术小能手 发表在:中生代技术 TensorFlow教程:快速入门深度学习五步法(附Keras实例) 作者:技术小能手 发表在:数据派THU Python 4 种不同的存取文件骚操作 作者:技术小能手 发表在:小詹学Python 美文回顾 TextRank算法抽取关键词 作者:citibank 从MySQL到HBase:数据存储方案转型的...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度
- 设置Eclipse缩进为4个空格,增强代码规范
- 面试大杂烩
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)