English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Руководство по функциям 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 5.0.0 и выше.
работа 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 ключ)
работа 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 )
Работа 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 )
Обработка 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 )