AES加密

  最近做的一个项目,需要对传输的参数进行aes加密,所以就顺便的了解了一下,因为这种东西,肯定都是有写好的,现成的,所有这里就简单的记录一下,方便以后自己和大家查找。

首先附上百度的关于AES的百度百科链接,如果觉得看的不是很明白的话,这里有一个漫画版的。然后在附上一个在线的加密解密的网站链接。方便大家自行的查询与应用。好的废话不多说,下面直接上代码。

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6  
 7 </head>
 8  
 9 <!--<script src="https://sellpow-html.oss-cn-beijing.aliyuncs.com/public/js/aes.js"></script>-->
10 <!--<script src="https://cdn.bootcss.com/aes-js/3.1.2/index.js"></script>-->
11 <script src="http://react.file.alimmdn.com/aes.js" type="text/javascript" charset="utf-8"></script>
12 <body>
13   
14 <script>
15     var key = CryptoJS.enc.Utf8.parse("8NONwyJtHesysWpM");//密钥
16     var plaintText = '{"a":1}'; // 需要传输的明文 
17     var encryptedData = CryptoJS.AES.encrypt(plaintText, key, {
18         mode: CryptoJS.mode.ECB,//这里是选择的模式
19         padding: CryptoJS.pad.Pkcs7//这里也是选择的一个模式
20     });
21     console.log("加密前:"+plaintText);
22     console.log("加密后:"+encryptedData);
23  
24     encryptedData = encryptedData.ciphertext.toString();
25     var encryptedHexStr = CryptoJS.enc.Hex.parse(encryptedData);
26     var encryptedBase64Str = CryptoJS.enc.Base64.stringify(encryptedHexStr);
27  
28     var decryptedData = CryptoJS.AES.decrypt(encryptedBase64Str, key, {
29         mode: CryptoJS.mode.ECB,
30         padding: CryptoJS.pad.Pkcs7
31     });
32  
33     var decryptedStr = decryptedData.toString(CryptoJS.enc.Utf8);
34  
35     console.log("解密后:"+decryptedStr);
36 
37     var pwd = "PCsUFtgog9/qpqmqXsuCRQ==";
38     //加密服务端返回的数据
39     var decryptedData = CryptoJS.AES.decrypt(pwd, key, {
40         mode: CryptoJS.mode.ECB,
41         padding: CryptoJS.pad.Pkcs7
42     });
43     
44     console.log("解密服务端返回的数据:"+decryptedStr);
45  
46 </script>
47 </body>
48 </html>

  我在这个程序中使用的是ECB模式,所以就没有什么偏移量的问题了,如果你们使用的是其他的模式,请增加偏移量。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章