zoukankan      html  css  js  c++  java
  • 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, ""); //注意!解密出来的数据后面会出现六个红点;这句代码可以处理掉,从而不影响进一步的数据操作
            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是不同的,那么是不能解密的,请注意这一点

  • 相关阅读:
    移动平台的meta标签-----神奇的功效
    JAVA工程命名规范
    linux 查看tomcat 实时日志
    linux 配置全局jdk环境
    AJAX 前后端交互 验证信息是否正确
    数据库更新DATE类型的时间
    jq 克隆 移除table
    eclipse 安装javaEE插件 和htmlxmljsp编辑器
    oracle 正序 逆序 排序查询
    JQ遍历 input 并修改name属性
  • 原文地址:https://www.cnblogs.com/xiaocaoer/p/8257780.html
Copyright © 2011-2022 走看看