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

 更新时间:2016年08月02日 09:51:20   作者:hello八戒  
这篇文章主要介绍了两种JavaScript的AES加密方式(可与Java相互加解密) 的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

由于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实现窗口抖动及qq窗口抖动

    实例代码详解javascript实现窗口抖动及qq窗口抖动

    这篇文章主要介绍了实例代码详解javascript实现窗口抖动及qq窗口抖动的相关资料,需要的朋友可以参考下
    2016-01-01
  • js判断鼠标位置是否在某个div中的方法

    js判断鼠标位置是否在某个div中的方法

    这篇文章主要介绍了js判断鼠标位置是否在某个div中的方法,涉及JavaScript针对鼠标事件的响应及页面元素属性操作相关技巧,需要的朋友可以参考下
    2016-02-02
  • Js经典案例的实例代码

    Js经典案例的实例代码

    JS实现鼠标悬停切换图片,显示天气预报,利用焦点实现选择网站的实例代码,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧
    2018-05-05
  • 浅谈es6语法 (Proxy和Reflect的对比)

    浅谈es6语法 (Proxy和Reflect的对比)

    下面小编就为大家带来一篇浅谈es6语法 (Proxy和Reflect的对比)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • JS工厂模式开发实践案例分析

    JS工厂模式开发实践案例分析

    这篇文章主要介绍了JS工厂模式开发,结合具体实践案例形式分析了基于javascript工厂模式实现的轮播功能相关操作技巧,需要的朋友可以参考下
    2019-10-10
  • js实现图片上传并预览功能

    js实现图片上传并预览功能

    这篇文章主要为大家详细介绍了js实现图片上传并预览功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • JavaScript常用进制转换及位运算实例解析

    JavaScript常用进制转换及位运算实例解析

    这篇文章主要介绍了JavaScript常用进制转换及位运算实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • javascript如何合并多层级数组

    javascript如何合并多层级数组

    这篇文章主要介绍了javascript如何合并多层级数组问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Typescript文件被识别为视频的问题解决

    Typescript文件被识别为视频的问题解决

    这篇文章主要为大家介绍了Typescript文件被识别为视频的问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 谈谈JavaScript令人迷惑的==与+

    谈谈JavaScript令人迷惑的==与+

    这篇文章主要介绍了JavaScript中==与+的使用方法,帮助大家更好的理解和学习JavaScript,感兴趣的朋友可以了解下
    2020-08-08

最新评论