PHP - php_function_openssl_pkey_get_private ()

Définition et utilisation

le openssl_pkey_get_private() La fonction vous renverra la clé privée.

La description

La fonction openssl_pkey_get_private () renvoie la clé privée de la clé publique / privée donnée. Par exemple, le contenu d'un fichier .pem.

Syntaxe

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

Paramètres

Sr. Non Paramètre La description
1

key

Vous pouvez prendre la clé du fichier .pem ou utiliser la clé privée générée à partir de openssl_pkey_new ().

2

passphrase

Si la clé que vous utilisez est chiffrée, vous devrez spécifier une phrase de passe.

Valeurs de retour

La fonction PHP openssl_pkey_get_private () retourne un identifiant de ressource s'il n'y a pas d'erreur. Il renverra false si la génération de clé échoue.

Version PHP

Cette fonction fonctionnera à partir de la version PHP supérieure à 5.0.0.

Exemple 1

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

Cela produira le résultat suivant:

resource(3) of type (OpenSSL key)

Exemple 2

Fonctionnement de openssl_pkey_get_private () et 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);	
   }
?>

Cela produira le résultat suivant:

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-  G fTH|   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     0M h}  %  /    V  h  + 
         [e] =>   
         [d] => M K   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 C xi `% 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$ \n 1 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.{ o 9h Bq  뵘 EU  n   &S  tE 
       )
      [type] => 0
   )

Exemple 3

Fonctionnement de openssl_pkey_get_private () avec 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);	
   }
?>

Cela produira le résultat suivant:

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 ; 7 2*   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 z 2  #  SyM o   Xċ.  ;  K     ڊ  qs LLD 
          ^   "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 Z e ` 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" 0 T.    G `t ܈  ^  \7
        )
        [type] => 0
   )

Exemple 4

Fonctionnement de openssl_pkey_get_private () avec le fichier .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);	
   }
?>

Cela produira le résultat suivant:

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  1 L  z  "X   >  ]  t       Rh  g  !8  Y9 G rŜ   9z   z  ~        jo  _  
            [p] => ٥    + iy  Ѷm:#`BF  Bj>     f  2 W%  eIAn       ۪.o 	 v `tgg  a L %ٱ 
L[  \6  `  sx] ~ bU fF /Oy 6 + ~v  7u 
            [q] => ǎ Ͱ u ( .L  l  o  G c x     @4   r   `i i X  v  ' 33X   c     _ ׏   m8   M   5 #t"   ^ { j	vSLi X  mh ԷI܀8   
1t 
            [dmp1] =>    6 $5 E g Q 1F"   8y   V`  \  A {  0 
   ym 6 dUI< 8 f  \   " K K hja5 z
  w ' m F9 nv rϑFP]  i %    ߿L 1 m' Y  4
@l th7 
            [dmq1] => il5w* eG ~   z  2 {  * "Ӟ    `       y  r     %@ l q   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
)