PHP - php_function_openssl_pkey_get_private ()

Definizione e utilizzo

Il openssl_pkey_get_private() la funzione ti restituirà la chiave privata.

Descrizione

La funzione openssl_pkey_get_private () restituisce la chiave privata dalla chiave pubblica / privata fornita. Ad esempio i contenuti dal file .pem.

Sintassi

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

Parametri

Suor n Parametro Descrizione
1

key

Puoi prendere la chiave dal file .pem o usando la chiave privata generata da openssl_pkey_new ().

2

passphrase

Se la chiave che stai utilizzando è crittografata, dovrai specificare la passphrase.

Valori restituiti

La funzione openssl_pkey_get_private () di PHP restituisce un identificatore di risorsa se non ci sono errori. Restituirà false se la generazione della chiave fallisce.

Versione PHP

Questa funzione funzionerà dalla versione PHP successiva alla 5.0.0.

Esempio 1

Funzionamento di openssl_pkey_get_private ():

<?php
   // Generate a new private (and public) key pair
   $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);
   }
?>

Questo produrrà il seguente risultato:

resource(3) of type (OpenSSL key)

Esempio 2

Funzionamento di openssl_pkey_get_private () e 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);	
   }
?>

Questo produrrà il seguente risultato:

Array
(
   [bits] => 2048
   [key] => -----BEGIN PUBLIC KEY-----
   MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnO1F0Gt03mgxLcDpRxlm
   VEh8sfIfan5o11EcoLaEwaTyKgMNm7A4Rs9LcG3fwkNjXo8XNRQv6OSrhl8y00AX
   +cPUb78Qp/K3INmyXr8UUVWy0BT+Rxq5kez1TmZhpITxUYLScEL8DPcghFyfstRa
   5hP8hc0cwYM6N4ieOlXIxrdmbzTn92MeyiTstTvHxt8aGKbSdpmksWyNeqke22kM
   9pBfEsf98XFh5HoQBQaQF6GXL5y00PWIdki7DTzYtXXPRGcQl/53M5HrGGdP0kGS
   uD4YOFXRWYtQR1ZYLa4Ej+BP0eOpfxXiME0aaH1/2iWqyi+bsvkdgFbu92j5ptsr
   yQIDAQAB
-----END PUBLIC KEY-----

   [rsa] => Array
   (
      [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�
      
      <صu�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 �oO\�e��.�� X�%s��ڕ_�|Za3��z$�\n1�N1�u�j)��z� [dmq1] => ��n[������ǣ<��t��^��P��)�[email protected]�� �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 ) 
        
       
      

Esempio 3

Utilizzo di openssl_pkey_get_private () con passphrase:

<?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);	
   }
?>

Questo produrrà il seguente risultato:

Array
(
   [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] => Array
      (
         [n] => ��=u
         l��[��L�'�࿶
         +}�f�f��:�rF��j~nF��I?��P��Mtr�4��9
         ��S$6�8��HA��^A���n$g��Kt��W��es�b�_�\4r�KjC��&C�!c��c���.�j�)��;�y���"�JQ��aex�r��7��`�8�/�*�̥бqp�c��B3��qdmɲ��o&p��Ke�½��c�_�q����o�;�72*��r�@�ⱗ��?
            [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
      
       �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 ) 
       
      

Esempio 4

Utilizzo di openssl_pkey_get_private () con file .pem:

<?php
   //creating private key
   $privkey = openssl_pkey_new();
   openssl_pkey_export_to_file($privkey, 'C:/xampp/htdocs/modules/openssl/fortesting.pem');
	
   //using .pem file with private key.
   $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);	
   }
?>

Questo produrrà il seguente risultato:

Array
(
    [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] => Array
        (
            [n] => ����
�p��Dz�#��T�y��v��q��pIWWPl��Q���>1q?�
      
         [d] => �9:���Y��"��*xu�&��gt�� &"��{ ��!Px�Ÿr�hn#��!c%�u �ʻ�꛷x��7z��&��|��ǔv�Ĩѳ�XT?΅��[w"�=e��m �1R_JH�/�hX��.�E���&&'�:�/:��.I�zdx@�6��)��i��1L�z��"X��>��]�t����Rh��g��!8�Y9�G�rŜ��9z� ��z��~�����jo_�� [p] => ٥���+�iy��Ѷm:#`BF��Bj>����f�2W%�eIAn� ����۪.o� v�`tgg��a�L�%ٱ� L[��\6��`��sx]�~�bU�fF�/Oy�6�+~v��7u� [q] => ǎ�Ͱ�u(�.L��l��o�Gc�x��@4��r� `i�i�X��v��'�33X��c��_׏��m8��M���5#t"��^�{�j vSLi�X��mhԷI܀8� 1t� [dmp1] => ���6�$5�Eg�Q�1F"��8y��V`��\��A�{��0� ��ym�6�dUI<�8�f��\��"K�Khja5�z �w�'�m�F9�nv�rϑFP]��i�%��߿L�1�m'�Y��4 @lth7� [dmq1] => il5w*�eG�~��z�2�{��*�"Ӟ���`�����y�r����%@�lq���De��U�z�� �s.��[ ��G�l_äh���8¢H4N�7$�25ң?�L� [iqmp] => 9"l@Ǚ�O�[I)}��K�6A/f5S� ���\�u��>��C�׏�� �z��]�B�-ry/��D��w��H|�g: ��8���s̙��◻(�B�Eo�`
       
         0 )