函式名稱:openssl_pkey_get_private()
適用版本:PHP 4 >= 4.2.0, PHP 5, PHP 7
函式描述:openssl_pkey_get_private() 函式用於從檔案或字串中獲取私鑰。
用法: openssl_pkey_get_private(mixed $private_key [, string $passphrase = ""])
引數:
- $private_key:私鑰,可以是包含檔案路徑的字串,或者是私鑰的字串表示。
- $passphrase(可選):私鑰的密碼,如果私鑰被加密的話。
返回值: 成功時返回一個資源識別符號,代表了私鑰。失敗時返回 FALSE。
示例:
- 從檔案中獲取私鑰:
$private_key = openssl_pkey_get_private('private_key.pem');
if (!$private_key) {
die('私鑰載入失敗');
}
// 使用私鑰進行加密或解密操作
// ...
// 釋放私鑰資源
openssl_free_key($private_key);
- 從字串中獲取私鑰:
$private_key_str = "-----BEGIN PRIVATE KEY-----\n
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDVlPj0N2sJXJG1\n
...
9xJw1R0g3T4w4z7M6qk3n4w==\n
-----END PRIVATE KEY-----\n";
$private_key = openssl_pkey_get_private($private_key_str);
if (!$private_key) {
die('私鑰載入失敗');
}
// 使用私鑰進行加密或解密操作
// ...
// 釋放私鑰資源
openssl_free_key($private_key);
注意事項:
- 私鑰可以是 PEM 格式或 DER 格式,但 PEM 格式要求包含包圍私鑰的 "-----BEGIN PRIVATE KEY-----" 和 "-----END PRIVATE KEY-----" 標記。
- 如果私鑰被加密,需要提供 $passphrase 引數來解密私鑰。
- 使用完私鑰後,應該呼叫 openssl_free_key() 函式釋放資源,以避免記憶體洩漏。