ddddd

php后端加密js前端解密

作者:程序员11 时间:2021-03-05 人气:888 QQ交流群\邮箱:1003265987@qq.com
php后端加密js前端解密mcrypt_module替换为openssl_encrypt
要展示的内容

PHP端:

        $string 要加密/解密的字符串

        $code 秘钥字符串

       $operation 默认false表示加密,传入true表示解密

  1. function secret($string,$code,$operation=false){
        $code = md5($code);
        $iv = substr($code,0,16);
        $key = substr($code,16);
        if($operation){
            return openssl_decrypt(base64_decode($string),"AES-128-CBC",$key,OPENSSL_RAW_DATA,$iv);
        }
        return base64_encode(openssl_encrypt($string,"AES-128-CBC",$key,OPENSSL_RAW_DATA,$iv));
    }

注意:本函数支持php到7+ ,同时兼容5.6.33(已测试通过的版本) 。如果需要将加密的字符串在网址中传递,使用urlencode($str)函数转码即可。 但是在js里面要decodeURIComponent($str)才行

JS端:

  1. string 要加密/解密的字符串

  2. code 秘钥字符串

    operation 默认false表示加密,传入true表示解密

    <script src="cryptojs/core.js"></script>
    <script src="cryptojs/enc-base64.js"></script>
    <script src="cryptojs/cipher-core.js"></script>
    <script src="cryptojs/aes.js"></script>
    <script src="cryptojs/md5.js"></script>
    <script>
    function secret(string, code, operation) {
    code = CryptoJS.MD5(code).toString();
    var iv = CryptoJS.enc.Utf8.parse(code.substring(0,16));
    var key = CryptoJS.enc.Utf8.parse(code.substring(16));
    if(operation){
    return CryptoJS.AES.decrypt(string,key,{iv:iv,padding:CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8);
    }
    return CryptoJS.AES.encrypt(string, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7}).toString();
    }
    </script>

    注意:如果需要将加密的字符串在网址中传递,使用encodeURIComponent(str)函数转码即可。

    实战案例:

    PHP后端加密:

  3. public function index(){
        $string = 'hello world';
        $code = 'vtucecn';
        $str = $this->secret($string,$code);
        return urlencode($str);
    }

    JS前端解密:

  4. var $string = '页面已存在的密文';
    var $code = '条件触发,get请求获取到的code';
    var string = secret($string,$code,true);
    console.log(string);

备注:为了避免暴力破解,$code要设置得足够复杂。

本例中,前端JS并不知道$code,当一定条件触发后,才会去后端获取到code。

相关的js可以去这个网址下载:https://github.com/brix/crypto-js/tree/release-3.1.2

或者去这里:https://115.com/s/swnhlxf3z4b?password=t557&#访问码:t557

温馨提示:

欢迎阅读本文章,觉得有用就多来支持一下,没有能帮到您,还有很多文章,希望有一天能帮到您。

php后端加密js前端解密---相关文章


评论区

ddddd

程序员-学习的网站-想学习编程的码农可以进来看看

首页

视频教程

购物车

我的订单