函数名称: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() 函数释放资源,以避免内存泄漏。