两种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代码实现多选、不同分享功能
Jul 31 Javascript
JQuery ztree带筛选、异步加载实例讲解
Feb 25 Javascript
Jquery调用iframe父页面中的元素及方法
Aug 23 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
Jan 19 Javascript
JS自定义函数实现时间戳转换成date的方法示例
Aug 27 Javascript
ES6 javascript中class类的get与set用法实例分析
Oct 30 Javascript
vue控制多行文字展开收起的实现示例
Oct 11 Javascript
Vue 中获取当前时间并实时刷新的实现代码
May 12 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
Jul 18 Javascript
vue内置组件component--通过is属性动态渲染组件操作
Jul 28 Javascript
vue axios封装httpjs,接口公用配置拦截操作
Aug 11 Javascript
vue调用微信JSDK 扫一扫,相册等需要注意的事项
Jan 03 Vue.js
深入浅析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实现图片简单上传
2006/10/09 PHP
PHP Token(令牌)设计
2008/03/15 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
2015/12/24 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
2016/03/21 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
JS 动态获取节点代码innerHTML分析 [IE,FF]
2009/11/30 Javascript
Ext 今日学习总结
2010/09/19 Javascript
ASP.NET jQuery 实例13 原创jQuery文本框字符限制插件-TextArea Counter
2012/02/03 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
2015/06/05 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
js中动态创建json,动态为json添加属性、属性值的实例
2016/12/02 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
webpack 样式加载的实现原理
2018/06/12 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
JS实现利用闭包判断Dom元素和滚动条的方向示例
2019/08/26 Javascript
javascript合并两个数组最简单的实现方法
2019/09/14 Javascript
vue中在vuex的actions中请求数据实例
2019/11/08 Javascript
[02:27]2014DOTA2国际邀请赛 VG赛后采访:更大的挑战在等着我们
2014/07/13 DOTA
python用于url解码和中文解析的小脚本(python url decoder)
2013/08/11 Python
Python字符串匹配算法KMP实例
2015/07/18 Python
Python处理JSON时的值报错及编码报错的两则解决实录
2016/06/26 Python
python Pandas 读取txt表格的实例
2018/04/29 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
荷兰家电销售网站:Welhof
2020/12/08 全球购物
英文简历自荐信范文
2013/12/11 职场文书
幼儿园义卖活动方案
2014/01/17 职场文书
大学活动总结范文
2014/04/29 职场文书
预备党员半年考察意见
2015/06/01 职场文书
详解Python生成器和基于生成器的协程
2021/06/03 Python