openssl_pkey_get_private()函数用于获取私钥。
openssl_pkey_get_private()函数将返回您的私钥。
函数openssl_pkey_get_private()从给定的公钥/私钥返回私钥。例如.pem文件中的内容。
openssl_pkey_get_private ( mixed $key [, string $passphrase = "" ] ) : resource
序号 | 参数 | 描述 |
---|---|---|
1 | key | 您可以从.pem文件中获取密钥,也可以使用openssl_pkey_new()生成的私钥。 |
2 | passphrase | 如果指定的密钥已被加密了(受密码保护),可选参数 passphrase 是必须要的 |
如果没有错误,PHP openssl_pkey_get_private()函数将返回资源标识符。如果密钥生成失败,它将返回false。
此函数将从大于5.0.0的PHP版本开始工作。
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); } ?>
这将产生以下结果:
resource(3) of type (OpenSSL key)
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); } ?>
这将产生以下结果:
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] => Ekth1-GfTH|j~hQ* 8FKpmCc^5/_2@o ^QUGNfaQpB \Z:7:Ufo4c$;vlzi_qaz/vH <uDgw3gOA>8UYPGVX-O0Mh}%/Vh+ [e] => [d] => MKC|Y55}ZR0;SIVM0LwrR|CdW}#v[9iZI1&!A;8K%}`@ }n b]KL#~Sg' 81!2R]`vl&Z@-q7u#.d]*Z-'| ?M jA [p] => *&5IXMU$u'd,$xiR1ACxi`%FR5 !aCt^f$V+]v"+=IwRN<Pe 3-"^|_-llD,=26XGg5@}qT.jA#m,>#YN},pk}g [dmp1] => l5o5Lh)I+DnJ!ycP1 =u>&h-HTKj;um oO\e. X%s_|Za3z$\n1N1uj)z [dmq1] => n[<t^P)F@ni gH(@#s!+$D]{Il[$>i q|$GI'R^c "e"k [iqmp] => Rij a6W#:#bS?'OSr#C87])4Z`w.ay@ psXP.{o9hBqEUn &StE ) [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); } ?>
这将产生以下结果:
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' +}ff:rFj~nFлI?PMtr49 S$68HA^An$gKtWesb_\4rKjC&C!cc.j);y"JQaexr7`8/*бqpcB3qdmo&pKe 1/2 c_qo;72*r@? [e] => [d] => ee$% sQEUADBu34$v#P\uD(zw+za5XqP^w%O+3]+o3FM*Z^Lk/Ty/;)sBNp5@x,8z2#SyMoXc.;K qsLLD ^"j*=Io{7`a{lB#\ [p] => àtY@[Nnpf ?7/\y<ox,(損iwXP5@s BDC| *JH/|`+3]oc?fIZe`C>U|":U^Lg u|@zF%6X/ 'U+_Yh:59}D&Gc [dmp1] => i*/ U6 |>3HPhN.G9cxj*!0R:9E(Z$&&7>9.IhEz/,QR"';^xq [dmq1] => |w` 3bAZt.8Q]FiI2){<G^tuMb4IYLES8a!6&Q(^'E [iqmp] => \p5N $WCj |{>dY f93$rF(ON> %`( &op }=C+b"#G"0T.G`t^\7 ) [type] => 0 )
使用.pem文件处理openssl_pkey_get_private():
<?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); } ?>
这将产生以下结果:
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] => pDz#TyvqpIWWPlQ>1q?<b7is,b5z+h~v+0uy9ki-py yh6fdto- [d] => 9:Y"*xu> &"{!Pxrhn#!c%u ‘x7z&|ǔv~IXT?[w"=em1R_JH/hX.E&&':/:.Izdx@6)i1Lz"X>]tRhg!8Y9Gr^S9zz~jo_ [p] => +iym:#`BFBj>f2W%eIAn .o v`tggaL% L[\6`sx]~bUfF/Oy6+~v7u [q] => ǎu(.LloGcx@4r `iiXv'33Xc_m8M5#t"^{j vSLiXmhI8 1t [dmp1] => 6$5EgQ1F"8yV`\A{0 ym6dUI<8f\"KKhja5z w'mF9nvrθFP]i%L1m'Y4 @lth7 [dmq1] => il5w*eG~z2{*"`yr%@lqDeUz s.[ Gl_"ah8cH4N7$25?L [iqmp] => 9"l@O[I)}K6A/f5S \u>C z]B-ry/DwH|g:8s(BEo`0 )