欢迎来到代码驿站!

JavaScript代码

当前位置:首页 > 网页前端 > JavaScript代码

两种JavaScript的AES加密方式(可与Java相互加解密)

时间:2021-05-12 09:11:41|栏目:JavaScript代码|点击:

由于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>

上一篇:Openlayers+EasyUI Tree动态实现图层控制

栏    目:JavaScript代码

下一篇:ReactJs快速入门教程(精华版)

本文标题:两种JavaScript的AES加密方式(可与Java相互加解密)

本文地址:http://www.codeinn.net/misctech/119986.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有