两种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 相关文章推荐
兼容FireFox 的 js 日历 支持时间的获取
Mar 04 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
May 22 Javascript
JS自动倒计时30秒后按钮才可用(两种场景)
Aug 31 Javascript
JS实现的不规则TAB选项卡效果代码
Sep 18 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
Oct 16 Javascript
jQuery实现带玻璃流光质感的手风琴特效
Nov 20 Javascript
jQuery手动点击实现图片轮播特效
Apr 20 Javascript
SpringMVC返回json数据的三种方式
Dec 10 Javascript
jQuery实现的简单分页示例
Jun 01 Javascript
vue.js中mint-ui框架的使用方法
May 12 Javascript
vue-router实现编程式导航的代码实例
Jan 19 Javascript
vue.js中使用echarts实现数据动态刷新功能
Apr 16 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/07/08 PHP
PHP 进度条函数的简单实例
2017/09/19 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
让您的菜单不离网站
2006/10/03 Javascript
JavaScript访问样式表代码
2010/10/15 Javascript
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
jQuery操作iframe中js函数的方法小结
2016/07/06 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
2017/12/18 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
原生JS实现轮播图效果
2018/10/12 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
layui实现数据分页功能
2019/07/27 Javascript
vuex实现数据状态持久化
2019/11/11 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
2020/03/04 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
python中requests爬去网页内容出现乱码问题解决方法介绍
2017/10/25 Python
使用 Python 实现微信群友统计器的思路详解
2018/09/26 Python
Python namedtuple命名元组实现过程解析
2020/01/08 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
Python字典深浅拷贝与循环方式方法详解
2020/02/09 Python
python virtualenv虚拟环境配置与使用教程详解
2020/07/13 Python
Omio美国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/08 全球购物
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
2014/07/16 面试题
市场部专员岗位职责
2013/11/30 职场文书
汽车维修专业个人求职信范文
2014/01/01 职场文书
现金出纳岗位职责
2014/03/15 职场文书
校长寄语大全
2014/04/09 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
六五普法学习心得体会
2016/01/21 职场文书
导游词幽默开场白
2019/06/26 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript