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模式,所以就沒有什麼偏移量的問題了,如果你們使用的是其他的模式,請增加偏移量。

 

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