前端請求參數MD5加密發送后台


最近在項目開發中遇到前端發送參數加密的問題,網上查找半天也是很亂,小編自己在項目開發中總結了一下,寫到博客中,希望能夠幫助大家。

查看所有代碼可到我的github上查看源文件,下載后在控制台查看結果即可.

貼上html,javascript代碼

 1 <!doctype html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8" />
 5     <link rel="icon" href="ico.ico">
 6     <title>前端md5加密</title>
 7     
 8 </head>
 9 <body>
10     
11 </body>
12 <script type="text/javascript" src="js/jquery.min.js"></script>
13 <script src="js/core.js"></script>
14 <script src="js/cipher-core.js"></script>
15 <script src="js/tripledes.js"></script>
16 <script src="js/mode-ecb.js"></script>
17 <script>
18     var thisl = {
19         lng : "114.0690720000",
20         lat : "22.6662030000",
21         distance: "10"
22     }
23 
24     //加密的私鑰(這個要跟后台進行溝通,確認前后端密鑰相同)
25     var key = 'HL1HBF6lLND721';
26     //將json轉為字符串
27     var aToStr=JSON.stringify(thisl);
28     //對aTostr進行加密
29     var str1 = encryptByDES(aToStr,key);
30     
31    //對str1進行解密
32     var str2 = decryptByDESModeEBC(str1,key);
33  
34     //將str1轉為字符串傳給后台
35     var num = str1.toString();
36       console.log(num)   //  控制台去看
37       
38       //將str2解密的字符串轉為json
39       var str2_a = JSON.parse(str2);
40       console.log(str2)  //  控制台去看
41       
42       var a = '我的博客';
43       //對a進行加密
44     var script_a = encryptByDES(a,key);
45       console.log(script_a);    //  控制台去看
46       //script_a解密
47     var decrypt = decryptByDESModeEBC(script_a,key);
48       console.log(decrypt) //我的博客
49       
50       
51   function encryptByDES(message,key) {
52         //把私鑰轉換成16進制的字符串
53         var keyHex = CryptoJS.enc.Utf8.parse(key);
54         //模式為ECB padding為Pkcs7
55         var encrypted = CryptoJS.DES.encrypt(message, keyHex, {
56             mode: CryptoJS.mode.ECB,
57             padding: CryptoJS.pad.Pkcs7
58         });
59         //加密出來是一個16進制的字符串
60         return encrypted.ciphertext.toString();
61    }
62     //DES  ECB模式解密
63     function decryptByDESModeEBC(ciphertext,key) {
64         //把私鑰轉換成16進制的字符串
65         var keyHex = CryptoJS.enc.Utf8.parse(key);
66         //把需要解密的數據從16進制字符串轉換成字符byte數組
67         var decrypted = CryptoJS.DES.decrypt({
68             ciphertext: CryptoJS.enc.Hex.parse(ciphertext)
69         }, keyHex, {
70             mode: CryptoJS.mode.ECB,
71             padding: CryptoJS.pad.Pkcs7
72         });
73         //以utf-8的形式輸出解密過后內容
74         var result_value = decrypted.toString(CryptoJS.enc.Utf8);
75         return result_value;
76     }
77 </script>
78 </html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM