查询

openssl_public_decrypt()函数—用法及示例

「 使用公钥解密数据 」


函数名称: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 替换为你实际加密的数据。

补充纠错
热门PHP函数
分享链接