PHP openssl_open OpenSSL 函数



  • 定义和用法

    openssl_open - 打开密封的数据
  • 版本支持

    PHP4 PHP5 PHP7
    支持 支持 支持
    7.0.0 添加了 iv 参数
    5.3.0 添加了 method 参数
  • 语法

    openssl_open( string $sealed_data , string &$open_data , string $env_key , mixed $priv_key_id [, string $method = "RC4" [, string &$iv ]] )
    
    openssl_open() 使用与密钥标识符priv_key_id和信封密钥env_key相关联的私钥打开 (解密) sealed_data 数据, 使用解密后的数据填充open_data。 当数据被密封时,就生成了信封密钥且只能由一个特定的私钥使用。更多信息参见 openssl_seal() 。
  • 参数

    参数 必需的 描述
    sealed_data 密封的数据
    open_data 如果调用成功,则在这个参数中返回打开的数据。
    env_key 加密key。
    priv_key_id 私钥key id
    method 加解密算法。
    iv 初始化向量。
  • 返回值

    成功时返回 TRUE, 或者在失败时返回 FALSE。
  • 示例

    // $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);
    
  • 相关页面

    openssl_seal() - 密封 (加密) 数据