两种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 相关文章推荐
js获取div高度的代码
Aug 09 Javascript
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
May 06 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
Mar 19 Javascript
关于在IE下的一个安全BUG --可用于跟踪用户的系统鼠标位置
Apr 17 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
Sep 21 Javascript
jQuery+ajax中getJSON() 用法实例
Dec 22 Javascript
浅谈JavaScript对象的创建方式
Jun 13 Javascript
HTML中使背景图片自适应浏览器大小实例详解
Apr 06 Javascript
详解Vue中一种简易路由传参办法
Sep 15 Javascript
小程序中canvas的drawImage方法参数使用详解
Jul 04 Javascript
vue中keep-alive,include的缓存问题
Nov 26 Javascript
JS如何定义用字符串拼接的变量
Jul 11 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
一键删除顽固的空文件夹 软件下载
2007/01/26 PHP
php使用sql数据库 获取字段问题介绍
2013/08/12 PHP
php匹配字符中链接地址的方法
2014/12/22 PHP
解决3.01版的jquery.form.js中文乱码问题的解决方法
2012/03/08 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
2016/05/04 Javascript
Javascript字符串拼接小技巧(推荐)
2016/06/02 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
jQuery实现模拟flash头像裁切上传功能示例
2016/12/11 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
vue服务端渲染页面缓存和组件缓存的实例详解
2018/09/18 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
深入浅出vue图片路径的实现
2019/09/04 Javascript
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
在Python中处理XML的教程
2015/04/29 Python
Python 爬虫的工具列表大全
2016/01/31 Python
Python使用装饰器进行django开发实例代码
2018/02/06 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
简单了解django处理跨域请求最佳解决方案
2020/03/25 Python
金士达面试非笔试
2012/03/14 面试题
办公室年终个人自我评价
2013/10/28 职场文书
优秀实习自我鉴定
2013/12/04 职场文书
重阳节登山活动方案
2014/02/03 职场文书
寄语学生的话
2014/04/10 职场文书
体操比赛口号
2014/06/10 职场文书
个人简历自我评价怎么写
2015/03/10 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
毕业论文答辩开场白
2015/05/27 职场文书
小学入学感言
2015/08/01 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书
对Golang中的FORM相关字段理解
2021/05/02 Golang