函式名: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() 函式釋放公鑰資源,以避免記憶體洩漏。