當前位置:網站首頁>php使用openssl_encrypt和openssl_decrypt進行AES加密解密

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

2022-01-27 17:54:56 對這是我的昵稱

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

版權聲明
本文為[對這是我的昵稱]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201271754556282.html

隨機推薦