PHP
加密 | Cryptography

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.0iv已被添加。
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 ?>