PHP 菜鳥(niǎo)教程

PHP 高級(jí)教程

PHP & MySQL

PHP 參考手冊(cè)

PHP openssl_pkey_export_to_file() 函數(shù)用法及示例

PHP OpenSSL 函數(shù)手冊(cè)

openssl_pkey_export_to_file()函數(shù)用于將密鑰導(dǎo)出到文件中。

定義和用法

openssl_pkey_export_to_file()函數(shù)會(huì)將密鑰導(dǎo)出到文件中。

openssl_pkey_export_to_file()函數(shù)以PEM格式保存密鑰,PEM代表Privacy-Enhanced Mail,主要存儲(chǔ)加密密鑰和證書(shū)。

語(yǔ)法

openssl_pkey_export_to_file ( mixed $key , string $outfilename [, string $passphrase [, array $configargs ]] ) : bool

參數(shù)

序號(hào)參數(shù)描述
1

key

要導(dǎo)出到文件的密鑰。

2

outfilename

outfilename是保存.pem文件的路徑。

3

passphrase

可用于保護(hù)文件的密碼。

4

configargs

參數(shù)configargs是需要提供給函數(shù)以生成私鑰/公鑰對(duì)的配置詳細(xì)信息,詳細(xì)信息如下所述。

配置參數(shù)

默認(rèn)情況下,openssl_pkey_new()使用openssl.cnf中存在的配置詳細(xì)信息。但是使用configargs可以覆蓋它們。配置詳細(xì)信息如下:

configargs類型openssl.conf中使用的密鑰描述
digest_alg字符串default_md您從openssl_get_md_methods()獲得的摘要方法。
x509_extensions字符串x509_extensions創(chuàng)建x509證書(shū)時(shí)使用的擴(kuò)展名。
req_extensions字符串req_extensions創(chuàng)建CSR時(shí)使用的擴(kuò)展名。
private_key_bits整數(shù)default_bits指定在生成私鑰時(shí)要使用的位數(shù)。
private_key_type整數(shù)none要?jiǎng)?chuàng)建的私鑰類型。它可以是OPENSSL_KEYTYPE_DSA,OPENSSL_KEYTYPE_DH,OPENSSL_KEYTYPE_RSA或OPENSSL_KEYTYPE_EC中的一種。默認(rèn)值為OPENSSL_KEYTYPE_RSA。
encrypt_key布爾值encrypt_key導(dǎo)出的密鑰是否被加密?
encrypt_key_cipher整數(shù)none密碼常數(shù),例如OPENSSL_CIPHER_RC2_40(整數(shù)),OPENSSL_CIPHER_RC2_128(整數(shù)),OPENSSL_CIPHER_RC2_64(整數(shù)),OPENSSL_CIPHER_DES(整數(shù)),OPENSSL_CIPHER_3DES(整數(shù))等。
curve_name字符串none此openssl_get_curve_names()函數(shù)返回的曲線名稱之一。
config字符串N/A您可以根據(jù)需要在openssl.conf中更改配置,并在此處提供其路徑。

返回值

PHP openssl_pkey_export_to_file()函數(shù)如果成功則返回true,否則返回false。

PHP版本

此函數(shù)將從大于5.0.0的PHP版本開(kāi)始工作。

實(shí)例1

openssl_pkey_export_to_file()的工作-

<?php
        //創(chuàng)建私鑰
	$privkey = openssl_pkey_new();
	openssl_pkey_export_to_file($privkey, 'C:/xampp/htdocs/modules/openssl/keytest.pem');
?>

存儲(chǔ)在文件keytest.pem中的詳細(xì)信息如下-

-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDaqNK97A+mL9Xu
IDt3rz9yfFUvrLcDEvsDa9JsjQByJVbdRtaNl6nfg91/LfKO8zAeG8srd292jcYk
9MgBhkpMCHvF/QhWjA4IdPLdWHCbYfjF/LHmo/z022/FqTnjQtFws992/ClhZdo6
kpDlU/H2lmbnCwrsqHlqcQ7bzBgC5U5SW0t3A03PSqxQTIFPOHi1Yx1Il5jH/H11
6UXDKogAWsseRpdwVdsCy6Wj3rkybr1pr7CDkHSS49MAvJ4e6xhs+je12lrtyChR
ZTIYLICzEG7a1n0BPGAI1bQcivHXNipUkAYFn221gKRuB+9SQvC3VKbNXy8Oc7N9
HEahD8S3AgMBAAECggEBAKzEU68og7zlcvzxjsskNtd4kb5Xk0rkhlzPprWKO131
TssLm57IxLoMcMh6P3rff5dqkn9HoVRk9LhiiF1cA/xLf7CSGzJ2+ueHsBVgOaks
IeodnVsFG2tEru3YphqAwwdvuBNFblS8q084WzA3waj6cVgAi6MuArEtn3XfruEp
Yryc4Y1I1SB92x4y85tZ/PcomumPH0djKQeuhzy7f7GloJRfdshNENRbkdLc65N5
j8hy7WxMSa0dpJ3ZJMmgNfek9nALntSZfOsHGMZ/Wog8eV6+HzCwqqrMkR15pZI1
HqvVszU1iwoUJvlGoxInJOqJ2c6lBSBOBBR8DuuQixECgYEA+8RKXcw0U3VU8zJO
NTFzSDEtFYKZ5Bg4IPaYSTSo/ojiL3VrLeocRq3/2zdeCw8wx9eNZbcBW93lWVxK
q2G0X4XgonorEEONBvL9aE/D7wBCMYPWDXd/KQVZW8CPwcy10g2oIi3SqbcTQ/gT
fcmcHAQD2wVgo9XBlg24ESAP01MCgYEA3lYGasOvDweca5GCiP4m1oOH605haIUU
f5CDWXbZ6QjcoUQQB0CoDtTl3QpBd3KGbd+PbqU8xb44+LhrVIsjUyZs6k+eLACe
Dufzq00mIRSl/TZ0R3q17lAMmxId9QramDScpmqqqXonpOpdEoonThynhLyANgX3
eYGLXeqaII0CgYBPVi/JFwx2MEcwy+1xPcACQ9zdJmawRiGJ4atjhkCq1R/RrMK1
mUyHyVUTE4ODIKpSj05zexPmiyo22qp9DzDz2RBMowrm+SJ7yh6ovFoV+pLhX5YY
cEuV9aWPEEM84vF42+zbuGzmJlbf2FDsFpgnC+zbG/q0Jiv2ySPz4ZKbGQKBgQDM
ek9ih1+LshNAts1Xkm5DoSoy1Z4uUx48B7tVX0If2N+YjRE0qlklctWIiXMWGMTb
bdzrBJq0vjKFRI6pbWFqio9mmxy8GUFEMjzekZB8ohHao+cjCg8iAorlXy8f+wB5
NQHQ547XWRn2yPgaIebuJtpF8Fr11Fz6aZK0KBvhzQKBgGRwuxq6IhIROupoDRpU
RHuqICeQQYcf7Cfk7+ZyYJnA1fbOowj4Q5zvbWa6N2Ygyq2KIl0P5YL4Atb7aRKS
e6ol8lIKZM9ysbS+wR0OhhTJs/9CqpgvDbYNQFiaVZtGRpSNCxHkhn0cAR7lzK4P
ROQC7p9zXJhAmzE8/hTD9eaH
-----END PRIVATE KEY-----

實(shí)例2

從.pem文件中獲取密鑰-

<?php
        //創(chuàng)建私鑰
	$privkey = openssl_pkey_new();
	openssl_pkey_export_to_file($privkey, 'C:/xampp/htdocs/modules/openssl/keytest.pem');
	
	//使用帶有私鑰的.pem文件。
	$testprivatekey = openssl_get_privatekey(file_get_contents('C:/xampp/htdocs/modules/openssl/keytest.pem'));
	if ($testprivatekey === false) {
		var_dump(openssl_error_string());
	} else {
		//var_dump($testprivatekey);
		$key_details = openssl_pkey_get_details($testprivatekey);
		print_r($key_details["key"]);	
	}
?>

存儲(chǔ)在文件test-csr1.pem中的詳細(xì)信息如下-

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnbGAblUCP6sZvbi2JM4G
PcLmKK9flGQq6EE+yvMWrEUnIPGOLJUEB06dE8inIMQTYDmdmjn7HgUAlIDaViw+
aSv3XBZJqBTm7xtW4488oKuCzdBuJbnomtGttFWOk4cjb8kG+Kza6v0AB+P0eUru
cPkwnJF4F1pGY1pszSMsL3/s7OcIzjiKUKu5vHJxUWO7baVovq+gv9+O24Pd0GhB
t6RC/pgK/42YqZ2YW5V+JiuCFFkTVPusviunAOLLpDwoyPIROvXdML2TKopiowOd
nmOkNRrW81duRF8Z4dcn7jnf2sKExpLBgAtcV05OufZIv3VeeTD0ISbCJhn0zmx/
SQIDAQAB
-----END PUBLIC KEY-----

PHP OpenSSL 函數(shù)手冊(cè)

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清