zoukankan      html  css  js  c++  java
  • php openssl加密解密函数

    <?php
    
    /**
     * openssl 加密函数
     * 
     * @ $entry 需要加密的内容
     * @ $key   加密的 key,需要与解密的 key 值要一致
     * @ $iv    盐值
     *
     * 加默认值是为了防止程序报错,实际使用中不要使用默认值
     */
    function encrypt($entry, $key = 'viPTaL16hmhjs6LD', $iv = '0iX6Bsjt39SnM1aI7FE3'){
        $entry = serialize($entry);
        $data['iv'] = base64_encode(substr($iv,0,16));
        $data['value'] = openssl_encrypt($entry, 'AES-256-CBC',$key,0,base64_decode($data['iv']));
        $encrypt = base64_encode(json_encode($data));
        return $encrypt;
    }
    
    /**
     * openssl 解密函数
     * 
     * @ $encrypt 需解密的内容
     * @ $key     解密的 key,需要与加密的 key 值一致
     *
     *  加默认值是为了防止程序报错,实际使用中不要使用默认值
     */
    function decrypt($encrypt, $key = 'viPTaL16hmhjs6LD'){
        $encrypt = json_decode(base64_decode($encrypt), true);
        $iv = base64_decode($encrypt['iv']);
        $decrypt = openssl_decrypt($encrypt['value'], 'AES-256-CBC', $key, 0, $iv);
        $result = unserialize($decrypt);
        if($result){
            return $result;
        }else{
            return 0;
        }
    }
    
    //key 值,不要用默认值
    $key = 'xCjs52kKvSmfBYcwK3b1t2RT';
    //盐值,不要用默认值
    $iv = '1AMyFRwlPt6TJLxljpdSvQVn';
    
    //原内容
    $str = '清晨,一缕阳光从窗外照了进来,雨后的空气格外清新。';
    $encry = encrypt($str, $key, $iv);
    
    //加密后的内容
    echo $encry . '<br>';
    //解密后的内容
    echo decrypt($encry, $key);
  • 相关阅读:
    golang recover
    golang sort
    golang matrix
    golang encoding/json
    go package的理解
    golang beego cache
    git操作
    阿里云图标使用
    Stylus的使用
    vue-preview的使用
  • 原文地址:https://www.cnblogs.com/qingsong/p/15365020.html
Copyright © 2011-2022 走看看