• 前端请求参数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>
  • 相关阅读:
    Delphi高手突破第二章(1),堆与栈,构造与析构函数
    终于懂了:TWinControl与TCustomControl真正区别之处(TWinControl系统自绘,TCustomControl是Delphi自绘)
    Delphi高手突破第二章(3),封装,继承,多态
    不浪费自己一点一滴精力和体力在与自己目标不相干的事情上
    Delphi高手突破第二章(2),对象大小,类方法与类引用,错误的面向对象设计
    推荐微软Windows 8 Metro应用开发虚拟实验室
    利用TCP传输协议实现基于Socket的聊天程序
    持续集成
    Android 4.1 Surface系统变化说明
    自动化测试整理 STAF/STAX & Robot Framework
  • 原文地址:https://www.cnblogs.com/chailuG/p/9346816.html
Copyright © 2020-2023  润新知