English | 简体中文 | 繁體中文
查询

openssl_get_publickey()函数—用法及示例

「 从证书中获取公钥,并返回一个可用于其他 OpenSSL 函数的公钥资源 」


函数名称:openssl_get_publickey()

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

函数描述:openssl_get_publickey() 函数从证书中获取公钥,并返回一个可用于其他 OpenSSL 函数的公钥资源。

语法:resource openssl_get_publickey ( mixed $cert )

参数:

  • $cert:必需,证书路径或者证书字符串。

返回值:返回一个公钥资源,如果失败则返回 FALSE。

示例:

  1. 从证书文件中获取公钥:
$certFile = 'path/to/certificate.crt';
$publicKey = openssl_get_publickey(file_get_contents($certFile));

if ($publicKey === false) {
    echo "Failed to get public key from certificate.";
} else {
    echo "Public key obtained successfully.";
    // 使用 $publicKey 进行其他操作
    openssl_free_key($publicKey); // 记得释放资源
}
  1. 从证书字符串中获取公钥:
$certString = '-----BEGIN CERTIFICATE-----
MIIC+zCCAeOgAwIBAgIJALpXgTt+4RkGMA0GCSqGSIb3DQEBCwUAMDMxMTAvBgNV
BAMTKHRlc3QgY2VydGlmaWNhdGUgYXV0aG9yaXR5IGtleSBkZXBsb3ltZW50IGlu
Zm9ybWF0aW9uIFNlcnZlciBDQTAeFw0xOTA2MjMxNjI2NTlaFw0yOTA2MjAxNjI2
NTlaMDMxMTAvBgNVBAMTKHRlc3QgY2VydGlmaWNhdGUgYXV0aG9yaXR5IGtleSBk
ZXBsb3ltZW50IGluZm9ybWF0aW9uIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAM7FQW7s9T0iKvVum1BtKqXgBc8qG5wK9g9jv0xU1bZ9
7YrLlK2sH5gOqDz9q9HxVnL5rVUoZ0n8oJqRt2jv6LOnV4bKp4P4qD7hE3a9f3Gd
6B4I+LXpX4ZV1KJkD7Hj4cmYj8sNpTcB6t7g7pMfVJXc1Z8WnFf9GpUWwH4DpLsE
WqR+eK7H0KUe3q5r9hQhIe1d9Y5DhA2y7qfHkm+Y6WYt8fF4v3t3T5V8w6vXU9vF
L9M1zg0j3Fz5W5KX9T6RnUdQ5L8eXxkR2DdP3DQZqM7W5ZwR5z7wYjWbT3rZfW6H
QyY4sJ4x3J+7uXr9Ea6P6U2LMR5/5X5rJQgq0UZQVZ1pQ3GJ3XbN0Y8W4ND/d0hG
6wP1gPLkYqsCAwEAAaMhMB8wHQYDVR0OBBYEFKi8cLhB5Kk2a4iB3f1HJ5h6p3h0
MBIGA1UdEwEB/wQIMAYBAf8CAQEwDQYJKoZIhvcNAQELBQADggEBAH0zHr7D1d+Y
Fz8hjAzxw7xw58XUOJm9K0hB8T5vB8b5Km7obwX2Z8zjCpY5zFjDgQfVh7P9F8gO
4C3O9lHf6N8KbZ/4e3WwC5L3Bj1e7X8FQl5iG0F6EazS+V7Kd7Y6N9a4R9i+3QK7
2tjIcJWm3QhA1Xo5P2bYjg5iLZxUd7b5z8uI7rOYf5aW5A5BvBMJs1Q8Lbq6qzF6
G0pBDr79tXsJqG1f9u9B5pOvUZ4aXlQn8Vn3GnWQ2oQW3U0v2h0MvT7jB4OaZo3A
QDQeOgUZiC4R0Qf8aU6Jl2E9DxK+2K8XZwNn4W2Pf0iRqkZT9eP7bA9K0G0fG9zX
Czj1+2y7WIZgZg0Xk9FyDk0=
-----END CERTIFICATE-----';

$publicKey = openssl_get_publickey($certString);

if ($publicKey === false) {
    echo "Failed to get public key from certificate string.";
} else {
    echo "Public key obtained successfully.";
    // 使用 $publicKey 进行其他操作
    openssl_free_key($publicKey); // 记得释放资源
}

以上示例演示了如何使用 openssl_get_publickey() 函数从证书中获取公钥。请注意,获取到的公钥资源必须在使用完毕后使用 openssl_free_key() 函数释放,以避免资源泄露。

补充纠错
上一个函数: openssl_open()函数
下一个函数: openssl_get_privatekey()函数
热门PHP函数
分享链接