两种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 相关文章推荐
JQuery 文本框回车跳到下一个文本框示例代码
Aug 30 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
May 03 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
Sep 21 Javascript
微信小程序 wx.request(OBJECT)发起请求详解
Oct 13 Javascript
简单三步实现报表页面集成天气
Dec 15 Javascript
Bootstrap Table使用整理(三)
Jun 09 Javascript
基于node.js之调试器详解
Aug 22 Javascript
通过vue-cli来学习修改Webpack多环境配置和发布问题
Dec 22 Javascript
Es6 Generator函数详细解析
Feb 24 Javascript
解决VUE双向绑定失效的问题
Oct 29 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
Jul 22 Javascript
js 数组当前行添加数据方法详解
Jul 28 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
解析php中获取系统信息的方法
2013/06/25 PHP
浅谈PDO的rowCount函数
2015/06/18 PHP
PHP中的switch语句的用法实例详解
2015/10/21 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
Js 中debug方式
2010/02/07 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
基于jQuery的select下拉框选择触发事件实例分析
2016/11/18 Javascript
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
vue用递归组件写树形控件的实例代码
2018/07/19 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
微信小程序中转义字符的处理方法
2019/03/28 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
修改layui的后台模板的左侧导航栏可以伸缩的方法
2019/09/10 Javascript
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
Element Card 卡片的具体使用
2020/07/26 Javascript
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
python3使用flask编写注册post接口的方法
2018/12/28 Python
python实现彩色图转换成灰度图
2019/01/15 Python
PyQt5实现QLineEdit添加clicked信号的方法
2019/06/25 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
Audible英国:有声读物,30天免费试用
2019/10/16 全球购物
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
医大实习自我鉴定
2013/12/07 职场文书
优秀共产党员先进事迹
2014/01/27 职场文书
导游实习生自荐书
2014/01/28 职场文书
餐饮业员工工作决心书
2014/03/11 职场文书
班班通校本培训方案
2014/03/12 职场文书
社区助残日活动总结
2014/08/29 职场文书
全国法制宣传日活动总结2014
2014/11/01 职场文书
Python中基础数据类型 set集合知识点总结
2021/08/02 Python