定义和用法
openssl_pkey_get_private() 函数将返回私钥。相关请看 OpenSSL 函数。
描述
函数 openssl_pkey_get_private() 从给定的公钥/私钥中返回私钥。例如,来自 .pem 文件的内容。
语法
openssl_pkey_get_private ( mixed $key [, string $passphrase = "" ] ) : resource
参数
Sr.No | 参数 | 描述 |
---|---|---|
1 |
key |
从 .pem 文件中获取密钥,也可以使用从 openssl_pkey_new() 生成的私钥。 |
2 |
passphrase |
如果您使用的密钥已加密,则必须指定密码。 |
返回值
PHP openssl_pkey_get_private() 函数在没有错误的情况下返回资源标识符。如果密钥生成失败,它将返回 false。
PHP 版本
此函数将在 PHP 版本高于 5.0.0 的情况下工作。
示例 1
openssl_pkey_get_private() 的工作:
<?php
// 生成新的私钥(和公钥)对
$privkey = openssl_pkey_new();
openssl_pkey_export($privkey, $yourprivatekey);
$testprivatekey = openssl_pkey_get_private($yourprivatekey);
if ($testprivatekey === false) {
var_dump(openssl_error_string());
} else {
var_dump($testprivatekey);
}
?>
这将产生以下结果:
resource(3) of type (OpenSSL key)
示例 2
openssl_pkey_get_private() 和 openssl_pkey_get_details() 的工作原理 -
<?php
$privkey = openssl_pkey_new();
openssl_pkey_export($privkey, $yourprivatekey);
$testprivatekey = openssl_pkey_get_private($yourprivatekey);
if ($testprivatekey === false) {
var_dump(openssl_error_string());
} else {
// var_dump($testprivatekey);
$key_details = openssl_pkey_get_details($testprivatekey);
print_r($key_details);
}
?>
示例 3
密码使用 openssl_pkey_get_private() :
<?php
$privkey = openssl_pkey_new();
openssl_pkey_export($privkey, $testkey, 'helloworld');
$testprivatekey = openssl_pkey_get_private($testkey, 'helloworld');
if ($testprivatekey === false) {
var_dump(openssl_error_string());
} else {
// var_dump($testprivatekey);
$key_details = openssl_pkey_get_details($testprivatekey);
print_r($key_details);
}
?>
示例 4
使用 openssl_pkey_get_private() 与 .pem 文件:
<?php
// 创建私钥
$privkey = openssl_pkey_new();
openssl_pkey_export_to_file($privkey, 'C:/xampp/htdocs/modules/openssl/fortesting.pem');
// 使用带有私钥的.pem文件。
$testprivatekey = openssl_pkey_get_private(file_get_contents('C:/xampp/htdocs/modules/openssl/fortesting.pem'));
if ($testprivatekey === false) {
var_dump(openssl_error_string());
} else {
// var_dump($testprivatekey);
$key_details = openssl_pkey_get_details($testprivatekey);
print_r($key_details);
}
?>