(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
openssl_pkey_new — Generates a new private key
openssl_pkey_new() generates a new private key. How to obtain the public component of the key is shown in an example below.
Зауваження: Для правильної роботи цієї функції необхідно встановити коректний файл openssl.cnf. Докладніше про це — у примітках розділу про Встановлення OpenSSL.
options
You can finetune the key generation (such as specifying the number of
bits) using options
. See
openssl_csr_new() for more information about
options
.
Returns an OpenSSLAsymmetricKey instance for
the pkey on success, or false
on error.
Версія | Опис |
---|---|
8.0.0 |
On success, this function returns an OpenSSLAsymmetricKey instance now;
previously, a resource of type OpenSSL key was returned.
|
7.1.0 |
The curve_name key of the options parameter was
added to make it possible to create EC keys based on Elliptic Curve algorithms.
|
Приклад #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, PHP_EOL;
$public_key = openssl_pkey_get_public($public_key_pem);
var_dump($public_key);
?>
Поданий вище приклад виведе щось схоже на:
// Output prior to PHP 8.0.0; note, the function returns a resource -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwknBFEherZe74BiRjTFA hqwZ1SK7brwq7C/afnLXKhRR7jnrpfM0ypC46q8xz5UZswenZakJ7kd5fls+r4Bv 3P8XsKYLTh2m1GiWQhV1g77cNIN4qNWh70PiDO3fB2446o1LBgToQYuRZS5YQRfJ rVD0ysgtVcCU9tjaey28HlgApOpYFTaaKPj2MBmEYpMC+kG2HhL12GfpHUi2eiXI dXT2WskWHWvUrmQ7fJIfI92JlDokV62DH/q1oiedLs9OPNb0rL1aAmYdzaVN6XNH x/o4Lh125v2vAPV9E3fZCDc/HDEUaahpjanMiCQEgEDp5Hr+CRkvERT5/ydN+p08 5wIDAQAB -----END PUBLIC KEY----- resource(6) of type (OpenSSL key) // Output as of PHP 8.0.0; note, the function returns an object -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwknBFEherZe74BiRjTFA hqwZ1SK7brwq7C/afnLXKhRR7jnrpfM0ypC46q8xz5UZswenZakJ7kd5fls+r4Bv 3P8XsKYLTh2m1GiWQhV1g77cNIN4qNWh70PiDO3fB2446o1LBgToQYuRZS5YQRfJ rVD0ysgtVcCU9tjaey28HlgApOpYFTaaKPj2MBmEYpMC+kG2HhL12GfpHUi2eiXI dXT2WskWHWvUrmQ7fJIfI92JlDokV62DH/q1oiedLs9OPNb0rL1aAmYdzaVN6XNH x/o4Lh125v2vAPV9E3fZCDc/HDEUaahpjanMiCQEgEDp5Hr+CRkvERT5/ydN+p08 5wIDAQAB -----END PUBLIC KEY----- object(OpenSSLAsymmetricKey)#2 (0) { }