函数名称:openssl_public_decrypt()
适用版本:PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8
函数描述:openssl_public_decrypt() 函数用于使用公钥解密数据。
语法:openssl_public_decrypt(string $data, string &$decrypted_data, mixed $key, int $padding = OPENSSL_PKCS1_PADDING): bool
参数:
- $data: 要解密的数据,必须是经过openssl_public_encrypt()加密的数据。
- &$decrypted_data: 解密后的数据将被存储在此变量中。
- $key: 可以是 PEM 格式的公钥,也可以是 OpenSSL 公钥资源。
- $padding: 可选参数,指定填充模式,默认为 OPENSSL_PKCS1_PADDING。
返回值:成功时返回 true,失败时返回 false。
示例:
// 公钥字符串
$public_key = <<<EOD
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyWmH9b4y4Ht8GhZ8X7a+
4bRq2tL5Qxv0sN8t6eTQy9Jz4vXvJYjT9HmZL3tiHhO0r8GcNQ0P2iU8QX3C2WvI
2LkXKwP6aQlJyT2cVXvqR0N9i4r6Z6vKlTb8QV2FzCj1yR5t2c9m6F5U3GqJZy2b
0vZr3v4hT3MzBkq7b5qV1J0+3X3gCqRk3yGt8M2Z5MqyXXa4JZ6yQvK/2I4n1f3+
0cMjI3Xj6JwNjEjGQvOzOQp9hHBrp+U3R2iZmHrC7W2r8v5X4y8M+P2xqimRq6gM
tq3yCDcC0hGt8yZi8tL2gXkZfKmS5u8l9hLm3Gh2u5kP2fxeF4z8yA2UuY1F5h6P
zB7nJQIDAQAB
-----END PUBLIC KEY-----
EOD;
// 加密后的数据
$encrypted_data = base64_decode('...'); // 加密后的数据,请替换为实际的加密结果
// 解密数据
$decrypted_data = '';
$result = openssl_public_decrypt($encrypted_data, $decrypted_data, $public_key);
if ($result) {
echo "解密成功:".$decrypted_data;
} else {
echo "解密失败";
}
注意:在示例中,你需要将 $public_key
替换为你实际使用的公钥字符串,并将 $encrypted_data
替换为你实际加密的数据。