array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.openssl-pkey-new.php', 1 => 'openssl_pkey_new', ), 'up' => array ( 0 => 'ref.openssl.php', 1 => 'Функции OpenSSL', ), 'prev' => array ( 0 => 'function.openssl-pkey-get-public.php', 1 => 'openssl_pkey_get_public', ), 'next' => array ( 0 => 'function.openssl-private-decrypt.php', 1 => 'openssl_private_decrypt', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/openssl/functions/openssl-pkey-new.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
openssl_pkey_new — Генерирует новый закрытый ключ
openssl_pkey_new() создаёт новый закрытый ключ. Как получить открытую часть ключа показано в примере ниже.
Замечание: Для корректной работы этой функции должен существовать правильный openssl.cnf. Для более подробной информации смотрите замечания под разделом установки.
options
Вы можете настроить параметры генерации ключа (например указать число бит)
с помощью options
. Смотрите описание функции
openssl_csr_new() для детальной информации о
options
.
Возвращает экземпляр OpenSSLAsymmetricKey, либо false
в случае возникновения ошибки.
Версия | Описание |
---|---|
8.0.0 |
В случае успешного выполнения функция возвращает экземпляр OpenSSLAsymmetricKey;
ранее возвращался ресурс (resource) типа OpenSSL key .
|
7.1.0 | Добавлен ключ curve_name в option для обеспечения возможности создания EC ключей. |
Пример #1 Получить открытую часть ключа из закрытого ключа
<?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)