查詢

openssl_private_decrypt()函式—用法及示例

「 使用私鑰對資料進行解密 」


函式名: openssl_private_decrypt()

適用版本: PHP 4 >= 4.0.6, PHP 5, PHP 7

用法: openssl_private_decrypt(string $data, string &$decrypted, mixed $key [, int $padding = OPENSSL_PKCS1_PADDING [, string $cipher_algo = '']]): bool

說明:此函式用於使用私鑰對資料進行解密。私鑰必須由openssl_pkey_get_private()函式匯入。

引數:

  • $data:要解密的資料。
  • &$decrypted:解密後的資料將儲存在該變數中。
  • $key:私鑰,可以是PEM格式的字串、OpenSSL key資源或者由openssl_pkey_get_private()返回的私鑰資源。
  • $padding(可選):指定填充模式,預設為OPENSSL_PKCS1_PADDING。
  • $cipher_algo(可選):指定加密演算法,預設為空字串。如果未指定,則使用預設的openssl_get_cipher_methods()中的第一個演算法。

返回值:如果解密成功,則返回true,否則返回false。

示例:

// PEM格式的私鑰
$privateKey = <<<EOD
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQC1z3Qq7i1h/2ZyB4fz3QR1CnC3ZoN4y5zTbQ7W8S7wH0lE8M5h
...
-----END RSA PRIVATE KEY-----
EOD;

// 加密的資料
$encryptedData = base64_decode("...");

// 匯入私鑰
$privateKeyResource = openssl_pkey_get_private($privateKey);

// 解密資料
openssl_private_decrypt($encryptedData, $decryptedData, $privateKeyResource);

// 輸出解密後的資料
echo $decryptedData;

注意事項:

  • 在使用openssl_private_decrypt()函式之前,必須先匯入私鑰。
  • 解密成功後,解密後的資料將儲存在傳遞給函式的第二個引數中(即&$decrypted)。
  • 如果解密失敗,函式將返回false。
  • 可以透過指定填充模式和加密演算法來自定義解密過程,但通常使用預設值即可。
補充糾錯
上一個函式: openssl_private_encrypt()函式
下一個函式: openssl_pkey_new()函式
熱門PHP函式
分享連結