openssl_open
openssl_open
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
openssl_open — 打开密封数据
描述
bool openssl_open ( string $sealed_data , string &$open_data , string $env_key , mixed $priv_key_id [, string $method = "RC4" [, string &$iv ]] )
openssl_open()
sealed_data
使用与密钥标识符priv_key_id
和信封密钥相关联的私钥打开(解密)env_key
,并填充open_data
解密的数据。信封密钥是在密封数据时生成的,只能由一个特定的私钥使用。有关更多信息,请参阅openssl_seal()。
参数
sealed_data
open_data
如果调用成功,则在此参数中返回已打开的数据。
env_key
priv_key_id
method
密码方法。
iv
初始化向量。
返回值
成功返回TRUE
或失败时返回FALSE
。
更新日志
版 | 描述 |
---|---|
7.0.0 | iv已被添加。 |
5.3.0 | 该方法已添加。 |
例子
示例#1 openssl_open()示例
<?php
// $sealed and $env_key are assumed to contain the sealed data
// and our envelope key, both given to us by the sealer.
// fetch private key from file and ready it
$fp = fopen("/src/openssl-0.9.6/demos/sign/key.pem", "r"
$priv_key = fread($fp, 8192
fclose($fp
$pkeyid = openssl_get_privatekey($priv_key
// decrypt the data and store it in $open
if (openssl_open($sealed, $open, $env_key, $pkeyid)) {
echo "here is the opened data: ", $open;
} else {
echo "failed to open data";
}
// free the private key from memory
openssl_free_key($pkeyid
?>