PHP - openssl_pkey_get_private() 函数


定义和用法

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);    
   }
?>