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);

 

posted @ 2021-10-03 20:45  孤舟残月浅笑嫣然  阅读(115)  评论(0编辑  收藏  举报