= 4.2.0, PHP 5, PHP 7, PHP 8)openssl_pkey_new — 生成一個(gè)新的私鑰說明openssl_pkey_new(?array $options = null): OpenSSLAsymmetricKey|false">

openssl_pkey_new

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

openssl_pkey_new生成一個(gè)新的私鑰

說明

openssl_pkey_new(?array $options = null): OpenSSLAsymmetricKey|false

openssl_pkey_new() 生成一個(gè)新的私鑰和公鑰對(duì)。如何獲取該密鑰的公共組件參見以下示例。

注意: 必須安裝有效的 openssl.cnf 以保證此函數(shù)正確運(yùn)行。參考有關(guān)安裝的說明以獲得更多信息。

參數(shù)

options

你可以使用 options 參數(shù)微調(diào)密鑰的生成(比如指定位數(shù))。查看 openssl_csr_new() 獲取更多關(guān)于 options 的信息。

返回值

成功時(shí)返回 OpenSSLAsymmetricKey 實(shí)例,錯(cuò)誤則返回 false 。

更新日志

版本 說明
8.0.0 成功時(shí)此函數(shù)會(huì)返回 OpenSSLAsymmetricKey 的實(shí)例;在之前版本中,則會(huì)返回類似為 OpenSSL key資源(resource)。
7.1.0 添加了 curve_name 配置參數(shù)使得可以創(chuàng)建 EC 密鑰。

范例

示例 #1 Obtain the public key from a private key

<?php
$private_key 
openssl_pkey_new();
$public_key_pem openssl_pkey_get_details($private_key)['key'];
echo 
$public_key_pem;
$public_key openssl_pkey_get_public($public_key_pem);
var_dump($public_key);
?>

以上例程的輸出類似于:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArZFsmN2P6rx1Xt7YV95o
gcdlal0k3ryiIhFNzjwtRNNTXfEfBr6lUuaIJYQ8/XqEBX0hpcfuuF6tTRlonA3t
WLME0QFD93YVsAaXcy76YqjjqcRRodIBphAbYyyMI/lXkQAdn7kbAmr7neSOsMYJ
El9Wo4Hl4oG6e52ZnYHyqW9dxh4hX93eupR2TmcCdVf+r9xoHewP0KJYSHt7vDUX
AQlWYcQiWHIadFsmL0orr6mutlXFReoHbesgKY9/3YLOu0JfxflSjIZ2JeL1NTl1
MsmODsUwgAUrwnWKKx+eQUP5g3GnSB3dPkRh9zRVRiLNWbCugyjrf3e6DgQWrW7j
pwIDAQAB
-----END PUBLIC KEY-----
resource(5) of type (OpenSSL key)