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的openssl_encrypt和openssl_decrypt方法进行数据加密和解密的过程。详细解释了各参数的意义,包括加密数据、算法选择、密钥、初始化向量等,并提供了具体的代码示例。
521

被折叠的 条评论
为什么被折叠?



