"seals (encrypts) data by using RC4 with a randomly generated secret key"
It should be noted that the randomly generated secret key is 128 bits long (openssl: EVP_rc4(void): RC4 stream cipher. This is a variable key length cipher with default key length 128 bits.)
openssl_seal
(PHP 4 >= 4.0.4, PHP 5)
openssl_seal — Zapečetit (zakódovat) data
Popis
int openssl_seal ( string $data, string &$sealed_data, array &$env_keys, array $pub_key_ids )Při úspěchu vrací délku zapečetěných dat, při chybě FALSE. Úspěšně zapečetěná data se umístí do argumentu sealed_data, a obálka do env_keys.
openssl_seal() zapečetí (zakóduje) data pomocí RC4 s náhodně generovaným tajným klíčem. Tento klíč se zakóduje všemi veřejnými klíči asociovanými s identifikátory v pub_key_ids a zakódované klíče se vrátí v env_keys. To znamená, že lze poslat zapečetěná data více příjemcům (za předpokladu, že máme jejích veřejné klíče). Každý z příjemců musí obdržet zapečetěná data a obálku, která byla zakódována jeho veřejným klíčem.
Příklad 1404. Ukázka openssl_seal()
// $data obsahuje data určená k zapečetění
// získat veřejné klíče našich příjemců a připravit je
$fp = fopen("/src/openssl-0.9.6/demos/maurice/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk1 = openssl_get_publickey($cert);
// opakovat prodruhého příjemce
$fp = fopen("/src/openssl-0.9.6/demos/sign/cert.pem", "r");
$cert = fread($fp, 8192);
fclose($fp);
$pk2 = openssl_get_publickey($cert);
// zapečetit zprávu, pouze majitelé $pk1 a $pk2 mohou dekódovat $sealed pomocí
// $ekeys[0] a $ekeys[1].
openssl_seal($data, $sealed, $ekeys, array($pk1,$pk2));
// uvolnit klíče z paměti
openssl_free_key($pk1);
openssl_free_key($pk2);
Viz také openssl_open().
openssl_seal
15-Jun-2005 06:20
