当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP openssl_pkey_get_public()用法及代码示例



定义和用法

这个openssl_pkey_get_public()函数将返回您的公钥。

描述

函数 openssl_pkey_get_public() 从给定的证书返回公钥,以便它可以与其他函数一起使用。

用法

openssl_pkey_get_public ( mixed $certificate ):resource

参数

Sr.No 参数 描述
1

certificate

您可以使用以下证书:

1.一个X.509证书资源

2. 来自文件的公钥,格式为 file://path/to/file.pem。

3. PEM 格式的公钥。

返回值

如果没有错误,PHP openssl_pkey_get_public() 函数将返回一个正资源标识符。如果失败,它将返回 false。

PHP版本

此函数适用于 5.0.0 以上的 PHP 版本。

例子1

使用 X.509 证书使用 openssl_pkey_get_public() -

<?php
   $dn = array(
      "countryName" => "IN",
      "stateOrProvinceName" => "Karnataka",
      "localityName" => "test1",
      "organizationName" => "test2",
      "organizationalUnitName" => "test3",
      "commonName" => "www.test.com",
      "emailAddress" => "xyz@test.com"
   );

   // Generate a new private /public key pair
   $privkey = openssl_pkey_new();

   // Generate a certificate
   $csr = openssl_csr_new($dn, $privkey, array('digest_alg' => 'sha256'));
   $res_cert = openssl_csr_sign($csr, null, $privkey, 365);
   openssl_x509_export($res_cert, $x_509_certificate);
   echo $res_pubkey = openssl_pkey_get_public($x_509_certificate);
?>

这将产生以下结果 -

Resource id #5

例子2

使用 .pem 文件处理 openssl_pkey_get_public() -

<?php
   $dn = array(
      "countryName" => "IN",
      "stateOrProvinceName" => "Karnataka",
      "localityName" => "test1",
      "organizationName" => "test2",
      "organizationalUnitName" => "test3",
      "commonName" => "www.test.com",
      "emailAddress" => "xyz@test.com"
   );

   // Generate a new private /public key pair
   $privkey = openssl_pkey_new();

   // Generate a certificate
   $csr = openssl_csr_new($dn, $privkey, array('digest_alg' => 'sha256'));
   $res_cert = openssl_csr_sign($csr, null, $privkey, 365);
   openssl_x509_export_to_file($res_cert, 'C:/xampp/htdocs/modules/openssl/x_509.pem');
   echo $res_pubkey = openssl_pkey_get_public(file_get_contents('C:/xampp/htdocs/modules/openssl/x_509.pem'));
?>

这将产生以下结果 -

Resource id #7

相关用法


注:本文由纯净天空筛选整理自 PHP - Function openssl_pkey_get_public()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。