PHP - php_function_openssl_pkey_get_private ()
Definición y uso
los openssl_pkey_get_private() La función le devolverá la clave privada.
Descripción
La función openssl_pkey_get_private () devuelve la clave privada de la clave pública / privada dada. Por ejemplo, contenido del archivo .pem.
Sintaxis
openssl_pkey_get_private ( mixed $key [, string $passphrase = "" ] ) : resource
Parámetros
No Señor | Parámetro | Descripción |
---|---|---|
1 |
key |
Puede tomar la clave del archivo .pem o usar la clave privada generada desde openssl_pkey_new (). |
2 |
passphrase |
Si la clave que está utilizando está cifrada, tendrá que especificar una frase de contraseña. |
Valores devueltos
La función PHP openssl_pkey_get_private () devuelve un identificador de recurso si no hay ningún error. Devolverá falso si falla la generación de claves.
Versión PHP
Esta función funcionará a partir de la versión PHP superior a 5.0.0.
Ejemplo 1
Funcionamiento 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);
}
?>
Esto producirá el siguiente resultado:
resource(3) of type (OpenSSL key)
Ejemplo 2
Trabajo de openssl_pkey_get_private () y 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);
}
?>
Esto producirá el siguiente resultado:
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
)
Ejemplo 3
Trabajo de openssl_pkey_get_private () con frase de contraseña:
<?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);
}
?>
Esto producirá el siguiente resultado:
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
)
Ejemplo 4
Trabajo de openssl_pkey_get_private () con archivo .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);
}
?>
Esto producirá el siguiente resultado:
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
)