两种JavaScript的AES加密方式(可与Java相互加解密)


Posted in Javascript onAugust 02, 2016

由于JavaScript属于弱类型脚本语言,因此当其与强类型的后台语言进行数据交互时会产生各种问题,特别是加解密的操作。本人由于工作中遇到用js与Java进行相互加解密的问题,在网上查了很多资料及代码段,均无法解决。后总结多篇文档内容终于找到解决办法,现记录与此:

下面给大家介绍两种JavaScript的AES加密方式,具体详情如下所示:

第一种:加解密时需要秘钥(key)和秘钥偏移量(iv)的情况,在线验证地址:http://www.seacha.com/tools/aes.html

//该方法可与Java进行相互加解密<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>需要秘钥(key)及秘钥偏移量(iv)的aes加解密</title>
</head>
<body>
<script src="aes_1.js"></script>//引入的js文件在该链接中:https://github.com/hellobajie/AES-of-JavaScript
<script>
var key = CryptoJS.enc.Utf8.parse("十六位十六进制数作为秘钥"); 
var iv = CryptoJS.enc.Utf8.parse('十六位十六进制数作为秘钥偏移量'); 
function Encrypt(word){
srcs = CryptoJS.enc.Utf8.parse(word);
var encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv,mode:CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});
return encrypted.ciphertext.toString().toUpperCase();
}
function Decrypt(word){ 
var encryptedHexStr = CryptoJS.enc.Hex.parse(word);
var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
var decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv,mode:CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});
var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); 
return decryptedStr.toString();
}
var mm = Encrypt('nihao')
console.log(mm);
var jm = Decrypt(mm);
console.log(jm)
</script>
</body>
</html>//如果想要深度了解每步作用,可以参考:http://zhidao.baidu.com/question/647688575019014285.html?qbl=relate_question_0&word=javascript%20aes

第二种:加解密时仅需要秘钥,在线验证地址:http://encode.chahuo.com/

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>加解密时仅需要秘钥</title>
</head>
<body>
<script src="aes_2.js"></script>//引入的js文件在该链接中:https://github.com/hellobajie/AES-of-JavaScript
<script type="text/javascript">
var pwd="秘钥";
function Encrypt(word){
return CryptoJS.AES.encrypt(word,pwd).toString();
}
function Decrypt(word){
return CryptoJS.AES.decrypt(word,pwd).toString(CryptoJS.enc.Utf8);
}
var mm = Encrypt('nihao');
console.log(mm)
var jm = Decrypt(mm);
console.log(jm)
</script>
</body>
</html>

以上所述是小编给大家介绍的两种JavaScript的AES加密方式(可与Java相互加解密),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
学习ExtJS form布局
Oct 08 Javascript
jQuery 方法大全方便学习参考
Feb 25 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
Apr 05 Javascript
SeaJS入门教程系列之SeaJS介绍(一)
Mar 03 Javascript
javascript实例--教你实现扑克牌洗牌功能
May 15 Javascript
node.js中的fs.writeFile方法使用说明
Dec 14 Javascript
jQuery中andSelf()方法用法实例
Jan 08 Javascript
巧用weui.topTips验证数据的实例
Apr 17 Javascript
JavaScript代码判断输入的字符串是否含有特殊字符和表情代码实例
Aug 17 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
Dec 13 Javascript
vue.js多页面开发环境搭建过程
Apr 24 Javascript
小程序的上传文件接口的注意要点解析
Sep 17 Javascript
深入浅析search 搜索框的写法
Aug 02 #Javascript
AngularJS基础 ng-keypress 指令简单示例
Aug 02 #Javascript
Angularjs 自定义服务的三种方式(推荐)
Aug 02 #Javascript
AngularJS基础 ng-keypress 指令简单示例
Aug 02 #Javascript
javascript将中国数字格式转换成欧式数字格式的简单实例
Aug 02 #Javascript
AngularJS基础 ng-keydown 指令简单示例
Aug 02 #Javascript
AngularJs自定义服务之实现签名和加密
Aug 02 #Javascript
You might like
漫荒推荐:画风超赞的国风漫画推荐 超长假期不无聊
2020/03/08 国漫
基于PHP实现数据分页显示功能
2016/05/26 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
在视频前插入广告
2006/11/20 Javascript
走出JavaScript初学困境—js初学
2008/12/29 Javascript
js限制textarea每行输入字符串长度的代码
2012/10/31 Javascript
javascript 获取图片尺寸及放大图片
2013/09/04 Javascript
通过js简单实现将一个文本内容转译成加密文本
2013/10/22 Javascript
jQuery取得设置清空select选择的文本与值
2014/07/08 Javascript
node.js中的fs.appendFile方法使用说明
2014/12/17 Javascript
创建js对象和js类的方法汇总
2014/12/24 Javascript
JavaScript 封装一个tab效果源码分享
2015/09/15 Javascript
onclick和onblur冲突问题的快速解决方法
2016/04/28 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
2017/01/09 Javascript
javascript 正则表达式去空行方法
2017/01/24 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
2017/02/03 Javascript
jQuery制作input提示内容(兼容IE8以上)
2017/07/05 jQuery
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
package.json各个属性说明详解
2020/03/11 Javascript
[01:32:22]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第一场 2月5日
2021/03/11 DOTA
Python中使用item()方法遍历字典的例子
2014/08/26 Python
Python处理文本文件中控制字符的方法
2017/02/07 Python
python爬虫使用cookie登录详解
2017/12/27 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
2018/06/14 Python
Python实现中值滤波去噪方式
2019/12/18 Python
pytorch制作自己的LMDB数据操作示例
2019/12/18 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
日本小田急百货官网:Odakyu
2018/07/19 全球购物
凯普林包包西班牙官网:Kipling西班牙
2019/04/12 全球购物
应聘医药代表职位求职信
2013/10/21 职场文书
走进敬老院活动总结
2014/07/10 职场文书
小石潭记导游词
2015/02/03 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
于丹讲座视频观后感
2015/06/15 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
python 学习GCN图卷积神经网络
2022/05/11 Python