定义和用法
这个openssl_pkey_export_to_file()函数将 key 导出到文件。
描述
openssl_pkey_export_to_file() 函数以 PEM 格式保存 key 。PEM 代表 Privacy-Enhanced 邮件,主要存储加密 key 和证书。
用法
openssl_pkey_export_to_file ( mixed $key , string $outfilename [, string $passphrase [, array $configargs ]] ):bool
参数
Sr.No | 参数 | 描述 |
---|---|---|
1 |
key |
要导出到文件的 key 。 |
2 |
outfilename |
outfilename 是您要保存 .pem 文件的路径。 |
3 |
passphrase |
可用于保护文件的密码。 |
4 |
configargs |
参数configargs是需要提供给函数以生成私钥/公钥对的配置细节。细节描述如下。 |
配置参数
默认情况下,openssl_pkey_new() 使用 openssl.cnf 中的配置细节。但是使用 configargs 你可以覆盖它们。 配置细节如下:
配置参数中的键 | 类型 | openssl.conf 中使用的 key | 描述 |
---|---|---|---|
digest_alg | string | default_md | 从 openssl_get_md_methods() 获得的摘要方法。 |
x509_extensions | string | x509_extensions | 创建 x509 证书时使用的扩展。 |
req_extensions | string | req_extensions | 创建 CSR 时使用的扩展。 |
private_key_bits | integer | default_bits | 指定生成私钥时要使用的位数。 |
private_key_type | integer | none | 要创建的私钥的类型。它可以是 OPENSSL_KEYTYPE_DSA、OPENSSL_KEYTYPE_DH、OPENSSL_KEYTYPE_RSA 或 OPENSSL_KEYTYPE_EC 之一。默认值为 OPENSSL_KEYTYPE_RSA。 |
encrypt_key | boolean | encrypt_key | 导出的 key 是否加密? |
encrypt_key_cipher | integer | none | 密码常量如 OPENSSL_CIPHER_RC2_40(整数)、OPENSSL_CIPHER_RC2_128(整数)、OPENSSL_CIPHER_RC2_64(整数)、OPENSSL_CIPHER_DES(整数)、 OPENSSL_CIPHER_3DES(整数)等 |
curve_name | string | none | 此函数返回的曲线名称之一 openssl_get_curve_names()。 |
config | string | 不适用 | 您可以根据需要更改 openssl.conf 中的配置,并在此处提供它的路径。 |
返回值
PHP openssl_pkey_export_to_file() 函数成功返回真,失败返回假。
PHP版本
此函数适用于 5.0.0 以上的 PHP 版本。
例子1
openssl_pkey_export_to_file() 的工作 -
<?php
//creating private key
$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 文件中获取 key -
<?php
//creating private key
$privkey = openssl_pkey_new();
openssl_pkey_export_to_file($privkey, 'C:/xampp/htdocs/modules/openssl/keytest.pem');
//using .pem file with private key.
$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_pkey_export()用法及代码示例
- PHP openssl_pkey_new()用法及代码示例
- PHP openssl_pkey_get_public()用法及代码示例
- PHP openssl_pkcs12_export()用法及代码示例
- PHP openssl_pkcs12_export_to_file()用法及代码示例
- PHP openssl_pkcs12_read()用法及代码示例
- PHP openssl_public_decrypt()用法及代码示例
- PHP openssl_private_encrypt()用法及代码示例
- PHP openssl_public_encrypt()用法及代码示例
- PHP openssl_private_decrypt()用法及代码示例
- PHP openssl_get_cert_locations()用法及代码示例
- PHP openssl_cipher_iv_length()用法及代码示例
- PHP openssl_spki_verify()用法及代码示例
- PHP openssl_get_curve_names()用法及代码示例
- PHP openssl_get_cipher_methods()用法及代码示例
- PHP openssl_spki_export_challenge()用法及代码示例
- PHP opendir()用法及代码示例
- PHP output_add_rewrite_var()用法及代码示例
- PHP octdec( )用法及代码示例
- PHP ord()用法及代码示例
注:本文由纯净天空筛选整理自 PHP - Function openssl_pkey_export_to_file()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。