函数名:openssl_pkey_get_public()
适用版本:PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8
用法:openssl_pkey_get_public(string $certificate): resource|false
说明:openssl_pkey_get_public() 函数用于从证书中获取公钥。它将读取指定的证书文件,并返回一个资源类型的公钥标识符,如果失败则返回 false。
参数:
- $certificate:证书的路径或内容字符串。
返回值:
- 成功时返回公钥标识符的资源类型,可以用于其他与公钥相关的 OpenSSL 函数。
- 失败时返回 false。
示例:
$certificate = file_get_contents('public.pem'); // 从文件中读取证书内容
$publicKey = openssl_pkey_get_public($certificate);
if ($publicKey === false) {
echo "无法获取公钥";
} else {
echo "公钥获取成功";
// 其他操作,例如使用公钥进行加密或验证等
openssl_free_key($publicKey); // 释放公钥资源
}
注意事项:
- 证书可以是 PEM 格式或 DER 格式。
- 如果证书是 PEM 格式,可以使用 file_get_contents() 函数从文件中读取证书内容。
- 如果证书是 DER 格式,可以使用 file_get_contents() 函数从文件中读取二进制内容,并使用 base64_encode() 函数将其转换为字符串形式。
- 在使用完公钥后,应该使用 openssl_free_key() 函数释放公钥资源,以避免内存泄漏。