aes前台加密后台解密

Posted 不倒的小草

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了aes前台加密后台解密相关的知识,希望对你有一定的参考价值。

aes加密npm地址:https://www.npmjs.com/package/crypto-js

aes加密git地址/下载: https://github.com/brix/crypto-js

直接上代码:

  前台代码:

       /* 
            *  加密
            */
            function encrypt(str, key) {
                key = CryptoJS.enc.Utf8.parse(key ? key : "1111111111111111");// 秘钥
                var iv = CryptoJS.enc.Utf8.parse(‘1234567890123412‘);//向量iv 
          var encrypted = CryptoJS.AES.encrypt(str, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding });
          return encrypted.toString();
        }
         /**
         * 解密
         * @param str
         */
          function decrypt(str) {
            var key = CryptoJS.enc.Utf8.parse("1111111111111111");// 秘钥
            var iv = CryptoJS.enc.Utf8.parse(‘1234567890123412‘);//向量iv
            var decrypted = CryptoJS.AES.decrypt(str, key, {iv: iv, padding: CryptoJS.pad.ZeroPadding});
            return decrypted.toString();
          }
        //调用
        //加密
        console.log(CryptoJS.pad.ZeroPadding);
        console.log(encrypt("123456"));
        //解密
        console.log(decrypt("123456"));

 

 后台php代码:

<?php     
        $privateKey = "1111111111111111"; //秘钥
        $iv = "1234567890123412"; //向量
        $data = "******";//前台加密的数据
        
//解密
        $encryptedData = base64_decode($data);
        $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $privateKey, $encryptedData, MCRYPT_MODE_CBC, $iv);
        $decrypted = rtrim($decrypted, "\0"); //注意!解密出来的数据后面会出现六个红点;这句代码可以处理掉,从而不影响进一步的数据操作
        echo($decrypted);//解密数据
        echo "<hr>";

//加密测试与$data比对。
    $data1 = "123456";//前台需要加密的数据
    echo base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $privateKey, $data1, MCRYPT_MODE_CBC,$iv)); //加密的数据可以与前台对比是一致的

  

注意:php后台有很多框架,如果使用phalcon框架自已的aes加密时,前台与后台的iv是不同的,那么是不能解密的,请注意这一点

以上是关于aes前台加密后台解密的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序用AES加密和java后台对接

C#/JS AES字符串加密和解密

Vue AES+MD5加密 后台解密

有关使用CryptoJS的AES方法进行加密和解密,后台获取前端生成的公钥进行AES加密。前端js如何使用私钥解密

RSA算法加密解密,数据传输,前台与后台数据交互

三分钟撸完前后端crypto-js加解密,你学废了吗?