English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP базовый учебник

PHP продвинутый учебник

PHP & MySQL

PHP справочник

Пример использования функции PHP openssl_pkey_get_private() и примеры

Руководство по функциям OpenSSL на PHP

Функция openssl_pkey_get_private() используется для получения私ного ключа.

Определение и использование

openssl_pkey_get_private()Функция вернет ваш私ный ключ.

Функция openssl_pkey_get_private() возвращает私钥 из предоставленного公开/частного ключа. Например, содержимое файла .pem.

Синтаксис

   openssl_pkey_get_private ( mixed $key [, string $passphrase = "" ] ) : resource

Параметры

НомерПараметрыОписание
1

ключ

Вы можете получить ключ из файла .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);
	}
?>

Это приведет к следующим результатам:

ресурс(3) типа (OpenSSL ключ)

Пример 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);	
	}
?>

Это приведет к следующим результатам:

Массив
(
    [bits] => 2048
    [key] => -----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnO1F0Gt03mgxLcDpRxlm
VEh8sfIfan5o11EcoLaEwaTyKgMNm7A4Rs9LcG3fwkNjXo8XNRQv6OSrhl8y00AX
+cPUb78Qp/K3INmyXr8UUVWy0BT+Rxq5kez1TmZhpITxUYLScEL8DPcghFyfstRa
5hP8hc0cwYM6N4ieOlXIxrdmbzTn92MeyiTstTvHxt8aGKbSdpmksWyNeqke22kM
9pBfEsf98XFh5HoQBQaQF6GXL5y00PWIdki7DTzYtXXPRGcQl/53M5HrGGdP0kGS
uD4YOFXRWYtQR1ZYLa4Ej+BP0eOpfxXiME0aaH1/2iWqyi+bsvkdgFbu92j5ptsr
yQIDAQAB
-----END PUBLIC KEY-----
    [rsa] => Массив
        (
            [n] => ??E?kt?h1-??GfTH|??j~h?Q?����*
??8F?Kpm?��Cc^?5/?䫆_2?@?���o? ٲ^?QU?���G??Nfa?���Q?��pB? �\?���Z?����:7??:U?�Ʒfo4??c?�$�;����?v���l?z?��i??_?���qa?z?/����?vH?
<?pu?Dg?w3??gO?A??>8U?�Y?PGVX-??O?���0Mh}?%??/����V?��h???+?
            [e] => 
            [d] => ??MK��C|??Y5?5}?Z?R0;?�S?I?V??����?M?0?Lw?r??�R??|??C?�d?W?�}??#����v?[9iZI??1��&!?���A?;8K?%}��`@
??����?�}??n?b?��]K?�L#?~Sg'? 81!?��2R]?����?�`?�vl?&?�Z?@-q?��7u?#?����.���d?����?�]�*Z-'?�|?�ܳ? ??M
j?����?�
            [p] => ??*&5IXM?U?$u?'?����d,?�$x?��iR?1?�ᙯ??A?Cxi`?%?FR?5?
??!??a?��C?֧t^??f?�$?���V?+?�ү?��]v"?+=??I?w??RN??<?�P?e??
3-?"?���^??|_?�-?�l?lD,?�=??26?ۗXGg5?@}q??T.?j??A?��m,>?YN}??,pk}g
            [dmp1] => ??
??l5o?5L???ޅh)?I?+??D?n?J!?ycP??1
=u>&?h-HT??K??j;?um
??O\?e?.??.
X%??s?_?|Za3?z$?\n1?N1?u?j)??z
            Неизвестный символ => ??n[?�?ǣ<?t^?P?)?F@ni??
�gHꥴ(���@#s�!+$�D��]����{�–���I㯽l���[$���>i	q|�$�Gء�I'R��^c
"����e"k
            [iqmp] => �Ŗij�	��a6�W#�:��#bS?�Ó��S�r#�C�ױ87])4��Z���`����ݻ����w���.�a�y��@	�ѓ�p���s�XP.{�o9h�Bq��뵘�EU��n	���&S��tE�
        )
    [type] => 0
)

Пример 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);	
	}
?>

Это приведет к следующим результатам:

Массив
(
    [bits] => 2048
    [key] => -----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs4HV+NM9dQ1ssuxb9PhM
64Yn8RHgv7YKK33nZudmk6SCOr9yRo7immp+bkaA0Lt/9ONJP+UF5VCltpdNdHLb
GDTo+TkK5NdTJDalON3L9EhB4cJeQaQQh59uJGf39Et0BJiYiINXsNdlc/pig1/Z
XDRyhEtqQ6nZJkOIIWO0gpdj9xj2naq/wy6Oas4p3/A7EvN5nB22xfEVIptKUZzi
YWV4Bs5y2OM3GRwVv+jLYKQ49S/ZKq7MpdCxcXC6YxyrlEIz4PL9cWRtybK3BINv
JnCWrfWRhUtlAY/CvfXrq2PhXwHVcebsDOPob6A71TcZMirxFZVyqkC+4rGX+5be
PwIDAQAB
-----END PUBLIC KEY-----
    [rsa] => Массив
        (
            Это текст четвертого абзаца, который нужно перевести на русский.
Это текст третьего абзаца, который нужно перевести на русский.
Это текст второго абзаца, который нужно перевести на русский.
Это текст первого абзаца, который нужно перевести на русский.
            [e] => 
            [d] => ��e���e�$%
sဩQ��EUA�D��Bu��34$�v�#����P�\��uD��(�z�w+�z����aͲ5���X��������q�Pŵڡ��%O+3��]+o�3�FM�*�Z^L��k�/�Ty��/��;�)�sB�Np�5�@�x�,8�z2�#�SyM�o�Xċ.���;�����K��� ���ڊ��qsLLD
^���"j��*=Io{����7`a��{�l�ᛅ�B������#���\�
            [p] => ׳��à�tY�@���[N��n�p�Ƌ��f�	��?7/\���͡�y<ox�,�(損�i�w�X�P�5�@��s BD�C���⎓�| �*���JH��/��|`�����+�3��]��oc?�fI�Ze�`�C�>U��|�"��ڊ:U���^��L����g�	�u|@z����F%6�X/�
��Ú��+�_�Yh:���59}�D�&כ��Gc
            [dmp1] => i�*/
�U�̯�6��
���|�>3�HP�hN��.�G�������9���cxj*�!��0�ؼ��R��:�9E(�Z��$�&�&7>�9.Ih��E�z/�,�QR�"�'�;���^���xq
            [dmq1] => |�w��`���䛌���
��3�����b�����AZ�t���.8���Q]��F�iI��2)�{<��G^ܵt��u�Mb��4I�YL�E�S�8a!�6��&Q�(�^��������É���
            [iqmp] => \p5��N��
$WC�j�� �|�{>d�������Y
f�����9�3�$rF(ON��>��� ����%��`(�
&�op� �}=C+������b�˝�#�G"�0T.���G`t�܈��^���\7�
        )
    [type] => 0
)

Пример 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);	
	}
?>

Это приведет к следующим результатам:

Массив
(
    [bits] => 2048
    [key] => -----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqaka1+sKh3D4HgIDzER6
vr/DI5u6h1QF6Xm1q/nOduTn0vlx4bLv+QEbcElXV1Bss4W7wOZRkMIOwj4xcT+e
PGKaN95JUyxC/NQ13+F6K5yUk0ish36BVusrHt0wdZj28f63gHm824D0yDnn+aJr
s+vSuMppErUD/i0QUFnO86ypHi/zeb+QBEif4a82RtfwRIVUtE/Sxy08ct+1ogA9
pdBd47elLmcekz/dtSUqpUjLj5SNojS7AJCZ5LNxnLOzN3ryCQXGaAn8KHQ284Xs
jlYBjSjXFLY/1fLDYDpQGOApoBj2vK9Io8MxFU3uss79Ezb6LwKZG6CmzlbldBrJ
YQIDAQAB
-----END PUBLIC KEY-----
    [rsa] => Массив
        (
            error message
error message 
            error message
error message
            error message
error message
            error message
1t�
            error message
error message
message
@lth7�
            error message
[
message
            error message
)

Руководство по функциям OpenSSL на PHP