两种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 实现??打印?理
Apr 28 Javascript
JQuery 无废话系列教程(二) jquery实战篇上
Jun 23 Javascript
JavaScript 变量基础知识
Nov 07 Javascript
jquery判断checkbox(复选框)是否被选中的代码
Oct 20 Javascript
显示今天的日期js代码(阳历和农历)
Sep 30 Javascript
jquery使用on绑定a标签无效 只能用live解决
Jun 02 Javascript
解决vue-cli中stylus无法使用的问题方法
Jun 19 Javascript
JS闭包的几种常见形式实例详解
Sep 16 Javascript
vuejs使用递归组件实现树形目录的方法
Sep 30 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
Aug 13 Javascript
laydate如何根据开始时间或者结束时间限制范围
Nov 15 Javascript
Vue循环中多个input绑定指定v-model实例
Aug 31 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 error_log 函数的使用
2009/04/13 PHP
php 多个submit提交表单 处理方法
2009/07/07 PHP
php 取得瑞年与平年的天数的代码
2009/08/10 PHP
解析在zend Farmework下如何创立一个FORM表单
2013/06/28 PHP
深入理解PHP类的自动载入机制
2016/09/16 PHP
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
使用jQuery在移动页面上添加按钮和给按钮添加图标
2015/12/04 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
javascript实现的图片预览功能
2017/03/25 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析
2019/03/06 Javascript
react+redux仿微信聊天界面
2019/06/21 Javascript
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
详解微信小程序动画Animation执行过程
2020/09/23 Javascript
浅谈Series和DataFrame中的sort_index方法
2018/06/07 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
Django Rest framework之权限的实现示例
2018/12/17 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
python list多级排序知识点总结
2019/10/23 Python
HTML5 Canvas的常用线条属性值总结
2016/03/17 HTML / CSS
ProBikeKit美国官网:自行车套件,跑步和铁人三项套件
2016/10/13 全球购物
在线购买澳大利亚设计师手拿包和奢华晚装手袋:Olga Berg
2019/03/20 全球购物
入党申请书自我鉴定
2013/10/12 职场文书
幼儿园教师国培感言
2014/02/02 职场文书
村干部承诺书
2014/03/28 职场文书
公司奖励通知
2015/04/21 职场文书
酒店宣传语大全
2015/07/13 职场文书
解决pytorch-gpu 安装失败的记录
2021/05/24 Python
Go 内联优化让程序员爱不释手
2022/06/21 Golang