openssl_seal

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

openssl_seal锟杰凤拷 (锟斤拷锟斤拷) 锟斤拷锟斤拷

说锟斤拷

openssl_seal ( string $data , string &$sealed_data , array &$env_keys , array $pub_key_ids [, string $method = "RC4" [, string &$iv ]] ) : int

openssl_seal() 使锟斤拷锟斤拷锟斤拷锟斤拷傻锟斤拷锟皆匡拷透锟斤拷锟斤拷锟� method 锟斤拷锟斤拷锟杰凤拷 (锟斤拷锟斤拷) data 锟斤拷锟捷★拷 锟斤拷钥锟斤拷锟斤拷pub_key_ids锟叫的憋拷识锟斤拷锟斤拷锟斤拷锟斤拷锟矫匡拷锟斤拷锟斤拷锟斤拷锟皆匡拷锟斤拷埽锟斤拷锟斤拷锟矫匡拷锟斤拷锟斤拷锟斤拷锟皆匡拷锟�env_keys锟叫凤拷锟截★拷 锟斤拷锟斤拷味锟斤拷一锟斤拷锟剿匡拷锟皆斤拷锟杰凤拷锟斤拷锟斤拷莘锟斤拷透锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷(锟斤拷锟揭伙拷锟斤拷锟斤拷丫锟斤拷锟斤拷锟斤拷锟斤拷锟角的癸拷钥)锟斤拷每锟斤拷锟斤拷锟秸凤拷锟斤拷锟斤拷锟斤拷同时锟斤拷锟秸硷拷锟杰碉拷锟斤拷锟捷猴拷锟矫斤拷锟秸凤拷锟侥癸拷钥锟斤拷锟杰碉拷锟脚凤拷锟斤拷钥锟斤拷

锟斤拷锟斤拷

data

要锟杰凤拷锟斤拷锟斤拷荨锟�

sealed_data

锟斤拷锟杰凤拷锟斤拷锟斤拷锟捷★拷

env_keys

锟窖憋拷锟斤拷锟杰碉拷锟斤拷钥锟斤拷锟介。

pub_key_ids

锟斤拷钥锟斤拷源锟斤拷识锟斤拷锟斤拷傻锟斤拷锟斤拷椤�

method

锟斤拷锟斤拷锟姐法锟斤拷

iv

锟斤拷始锟斤拷锟斤拷锟斤拷锟斤拷

锟斤拷锟斤拷值

锟缴癸拷锟斤拷锟斤拷锟斤拷锟杰凤拷锟斤拷锟斤拷莸某锟斤拷龋锟斤拷锟斤拷螅锟斤拷锟� FALSE . 锟斤拷锟斤拷芊锟斤拷锟斤拷锟斤拷莩晒锟斤拷锟酵拷锟�sealed_data锟斤拷锟斤拷锟斤拷锟截o拷锟斤拷么锟脚凤拷锟斤拷钥也锟斤拷锟斤拷通锟斤拷 env_keys 锟斤拷锟斤拷锟斤拷锟截★拷

锟斤拷锟斤拷锟斤拷志

锟芥本 说锟斤拷
7.0.0 锟斤拷锟� iv 锟斤拷锟斤拷锟斤拷
5.3.0 锟斤拷锟� method 锟斤拷锟斤拷锟斤拷

锟斤拷锟斤拷

Example #1 openssl_seal() 锟斤拷锟斤拷锟斤拷

<?php
// $data is assumed to contain the data to be sealed

// fetch public keys for our recipients, and ready them
$fp fopen("/src/openssl-0.9.6/demos/maurice/cert.pem""r");
$cert fread($fp8192);
fclose($fp);
$pk1 openssl_get_publickey($cert);
// Repeat for second recipient
$fp fopen("/src/openssl-0.9.6/demos/sign/cert.pem""r");
$cert fread($fp8192);
fclose($fp);
$pk2 openssl_get_publickey($cert);

// seal message, only owners of $pk1 and $pk2 can decrypt $sealed with keys
// $ekeys[0] and $ekeys[1] respectively.
openssl_seal($data$sealed$ekeys, array($pk1$pk2));

// free the keys from memory
openssl_free_key($pk1);
openssl_free_key($pk2);
?>

锟轿硷拷