定义和用法
openssl_pkey_export - 将一个密钥的可输出表示转换为字符串
语法
openssl_pkey_export( mixed $key , string &$out [, string $passphrase [, array $configargs ]] )
openssl_pkey_export() 将 key 当作 PEM 编码字符串导出并且将之保存到out (通过引用传递的)中。
注意: 必须安装有效的 openssl.cnf 以保证此函数正确运行。
参数
参数 | 必需的 | 描述 |
---|---|---|
key | 是 | 秘钥 |
out | 是 | 输出保存变量 |
passphrase | 否 | 密钥可以通过值为passphrase的密码来保护。 |
configargs | 否 | configargs 可以用来调整导出流程,通过指定或者覆盖openssl配置文件选项。参见 openssl_csr_new() 获取更多关于 configargs 的信息。 |
返回值
成功时返回 TRUE, 或者在失败时返回 FALSE。
示例
// Create the keypair
$res=openssl_pkey_new();
// Get private key
openssl_pkey_export($res, $privkey, "PassPhrase number 1" );
// Get public key
$pubkey=openssl_pkey_get_details($res);
$pubkey=$pubkey["key"];
//var_dump($privkey);
//var_dump($pubkey);
// Create the keypair
$res2=openssl_pkey_new();
// Get private key
openssl_pkey_export($res2, $privkey2, "This is a passPhrase *µà" );
// Get public key
$pubkey2=openssl_pkey_get_details($res2);
$pubkey2=$pubkey2["key"];
var_dump($privkey2);
var_dump($pubkey2);
$data = "Only I know the purple fox. Trala la !";
openssl_seal($data, $sealed, $ekeys, array($pubkey, $pubkey2));
var_dump("sealed");
var_dump(base64_encode($sealed));
var_dump(base64_encode($ekeys[0]));
var_dump(base64_encode($ekeys[1]));
// decrypt the data and store it in $open
if (openssl_open($sealed, $open, $ekeys[1], openssl_pkey_get_private ($privkey2 ,"This is a passPhrase *µà" ) ) ) {
echo "here is the opened data: ", $open;
} else {
echo "failed to open data";
}
相关页面
openssl_get_md_methods() - 获取可用的摘要算法