English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP基本教程

PHP上級教程

PHP & MySQL

PHPリファレンスマニュアル

PHP openssl_pkey_export_to_file() 関数の使用法と例

PHP OpenSSL 関数マニュアル

openssl_pkey_export_to_file()関数は、キーをファイルにエクスポートするために使用されます。

定義と使用方法

openssl_pkey_export_to_file()この関数はキーをファイルにエクスポートします。

openssl_pkey_export_to_file()関数はPEM形式でキーを保存し、PEMはプライバシーのことです。-Enhanced Mailは、主に暗号化キーと証明書を保存するために使用されます。

文法

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

パラメータ

序号パラメータ説明
1

key

ファイルにエクスポートするキーです。

2

outfilename

outfilenameは.pemファイルを保存するパスです。

3

passphrase

ファイルを保護するためのパスワードです。

4

configargs

パラメータconfigargsは、プライベートキーを生成するために関数に提供する必要があります。/公钥ペアの詳細な設定、以下に詳述します。

設定パラメータ

デフォルトでは、openssl_pkey_new()はopenssl.cnfに存在する詳細な設定を使用しますが、configargsを使用するとそれらをオーバーライドできます。詳細な設定は以下の通りです:

configargsタイプopenssl.confで使用されるキー説明
digest_alg文字列default_mdopenssl_get_md_methods()から取得した摘要方法です。
x509_extensions文字列x509_extensionsx509証明書に使用するエクステンションの拡張子です。
req_extensions文字列req_extensionsCSRを作成する際に使用するエクステンションの拡張子です。
private_key_bits整数default_bitsプライベートキーの生成に使用するビット数を指定します。
private_key_type整数none作成するプライベートキーのタイプです。OPENSSL_KEYTYPE_DSA、OPENSSL_KEYTYPE_DH、OPENSSL_KEYTYPE_RSA、OPENSSL_KEYTYPE_ECのいずれかです。デフォルト値はOPENSSL_KEYTYPE_RSAです。
encrypt_keyブール値encrypt_key導出されたキーが暗号化されているかどうか。
encrypt_key_cipher整数noneパスワード定数、例えばOPENSSL_CIPHER_RC2_40(整数),OPENSSL_CIPHER_RC2_128(整数),OPENSSL_CIPHER_RC2_64(整数),OPENSSL_CIPHER_DES(整数),OPENSSL_CIPHER_3DES(整数)など。
curve_name文字列noneopenssl_get_curve_names()関数が返す曲線名の1つです。
config文字列N/Aopenssl.conf内で必要に応じて設定を変更し、ここにそのパスを提供してください。

返り値

PHP openssl_pkey_export_to_file()関数が成功した場合trueを、それ以外の場合falseを返します。

PHPバージョン

この関数は、以下より大きいPHPバージョン5PHPバージョン0.0から動作を開始しました。

インスタンス1

openssl_pkey_export_to_file()の動作-

<?php
        //私钥の作成
	$privkey = openssl_pkey_new();
	openssl_pkey_export_to_file($privkey, 'C:/xampp/htdocs/modules/openssl/keytest.pem');
?>

ファイルkeytest.pemに保存されている詳細情報は以下の通りです-

-----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-----

インスタンス2

PEMファイルからキーを取得します-

<?php
        //私钥の作成
	$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"]);	
	}
?>

ファイルtestに保存されています-csr1.pemの詳細情報は以下の通りです-

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

PHP OpenSSL 関数マニュアル