查詢

openssl_decrypt()函式—用法及示例

「 對使用 OpenSSL 加密的資料進行解密 」


函式名稱:openssl_decrypt()

函式描述:openssl_decrypt() 函式用於對使用 OpenSSL 加密的資料進行解密。

適用版本:該函式適用於 PHP 5 >= 5.3.0, PHP 7, PHP 8

用法: openssl_decrypt(string $data, string $method, string $password, int $options = 0, string $iv = "", string $tag = "", string $aad = "")

引數:

  • $data:要解密的資料,通常是使用 openssl_encrypt() 函式加密後的資料。
  • $method:指定加密演算法,可以是以下之一:
    • "AES-128-CBC":128 位 AES 加密演算法,使用 CBC 模式。
    • "AES-192-CBC":192 位 AES 加密演算法,使用 CBC 模式。
    • "AES-256-CBC":256 位 AES 加密演算法,使用 CBC 模式。
    • "BF-CBC":Blowfish 加密演算法,使用 CBC 模式。
    • "CAST5-CBC":CAST5 加密演算法,使用 CBC 模式。
    • "DES-CBC":DES 加密演算法,使用 CBC 模式。
    • "DES-EDE3-CBC":3DES 加密演算法,使用 CBC 模式。
    • "RC2-CBC":RC2 加密演算法,使用 CBC 模式。
    • "RC4":RC4 加密演算法。
  • $password:用於解密的密碼。
  • $options:可選引數,指定解密選項。預設為 0,表示不使用任何選項。可以使用以下選項的按位或(|)組合:
    • OPENSSL_RAW_DATA:指定解密結果以原始二進位制資料返回,而不是預設的 base64 編碼字串。
    • OPENSSL_ZERO_PADDING:指定禁用自動填充功能,解密時不會自動刪除填充的資料。
  • $iv:可選引數,指定初始化向量(IV)。在使用 CBC 或 ECB 模式時需要提供。
  • $tag:可選引數,指定驗證標籤。在使用 AEAD 加密演算法時需要提供。
  • $aad:可選引數,指定附加的認證資料。在使用 AEAD 加密演算法時需要提供。

返回值:解密成功時返回解密後的資料,失敗時返回 false。

示例:

$key = "my_secret_key";
$encryptedData = "U2FsdGVkX1/9r9lq7rX7V1Uv+Gc9Z3w8";

$decryptedData = openssl_decrypt($encryptedData, "AES-256-CBC", $key, 0);
echo $decryptedData; // 輸出:Hello World!

注意事項:

  • 請確保 OpenSSL 擴充套件已啟用,可以透過在 php.ini 檔案中取消註釋 extension=openssl 來啟用。
  • 使用正確的密碼和加密演算法進行解密,否則會導致解密失敗。
  • 在使用 CBC 或 ECB 模式時,需要提供正確的初始化向量(IV)。
  • 在使用 AEAD 加密演算法時,需要提供正確的驗證標籤和附加的認證資料。
補充糾錯
上一個函式: openssl_digest()函式
下一個函式: openssl_csr_sign()函式
熱門PHP函式
分享連結