PHP openssl_pkey_export OpenSSL 函数

定义和用法

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() - 获取可用的摘要算法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章