两种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 相关文章推荐
由JavaScript中call()方法引发的对面向对象继承机制call的思考
Sep 12 Javascript
javascript数组快速打乱重排的方法
Jan 02 Javascript
JavaScript显示当前文档最后修改日期的方法
Mar 19 Javascript
使用AngularJS创建单页应用的编程指引
Jun 19 Javascript
JavaScript实现添加、查找、删除元素
Jul 02 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
Sep 07 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
Jan 05 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
Jan 19 Javascript
JavaScript中关于base64的一些事
May 06 Javascript
详解小程序开发经验:多页面数据同步
May 18 Javascript
vue中filters 传入两个参数 / 使用两个filters的实现方法
Jul 15 Javascript
2019最新21个MySQL高频面试题介绍
Feb 06 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 时间计算问题小结
2009/01/04 PHP
pdo中使用参数化查询sql
2011/08/11 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
PHP动态生成javascript文件的2个例子
2014/04/11 PHP
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
2014/09/01 Javascript
js验证上传图片的方法
2015/05/12 Javascript
Jquery代码实现图片轮播效果(一)
2015/08/12 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
Vue框架里使用Swiper的方法示例
2018/09/20 Javascript
VUE引入第三方js包及调用方法讲解
2019/03/01 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
2019/04/08 Javascript
微信小程序实现判断是分享到群还是个人功能示例
2019/05/03 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
python从ftp下载数据保存实例
2013/11/20 Python
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
2014/05/06 Python
python每隔N秒运行指定函数的方法
2015/03/16 Python
Python numpy实现数组合并实例(vstack,hstack)
2018/01/09 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
GWebs公司笔试题
2012/05/04 面试题
工作失误检讨书范文大全
2014/01/13 职场文书
运动会稿件50字
2014/02/17 职场文书
安全负责人任命书
2014/06/06 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
基于Python实现一个春节倒计时脚本
2022/01/22 Python
vue实现可以快进后退的跑马灯组件
2022/04/08 Vue.js