php使用openssl_encrypt和openssl_decrypt进行AES加密解密

openssl_encrypt方法参数介绍:

//加密
function openssl_encrypt($data, $cipher_algo, $passphrase, $options = 0, $iv = "", &$tag = null, $aad = "", $tag_length = 16) { }

 $data:要加密的数据;

$cipher_algo:你要使用的算法,可以打印openssl_get_cipher_methods()的结果查看所有算法;

$passphrase:加密要使用的key,这个可以自定义,也可以随机生成,但是要注意key字节的长度跟$cipher_algo有关。

$options:这个只有两个选项,OPENSSL_RAW_DATA和OPENSSL_ZERO_PADDING,任选一个即可

$iv:你自己定义的非空的字符串

openssl_decrypt参数与openssl_encrypt基本相同,只有$data不同,openssl_encrypt的$data是待加密的数据,openssl_decrypt的$data是待解密的数据

话不多说,直接上代码:

//加密
public function encrypt($data)
{

    if ($data== null || empty($data)) {
        return $data;
    }
    $secret_key = "your key";
    $iv = "your iv";
    $result= base64_encode(openssl_encrypt( $data, "aes-256-cbc", $secret_key, OPENSSL_RAW_DATA, $iv));

    return $result;
    
}

//解密
public function decode($data)
{
    if ($data== null || empty($data)) {
        return $data;
    }
    $secret_key = "your key";
    $iv = "your iv";
    $result= openssl_decrypt(base64_decode($data), "aes-256-cbc", $secret_key, OPENSSL_RAW_DATA, $iv);

    return $result;
   
}

你可能感兴趣的:(PHP,杂项,php,AES加密)