查询

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函数
分享链接