Forum und email

Filtrele de criptare

mcrypt.* şi mdecrypt.* oferă criptare şi decriptare simetrică, utilizând libmcrypt. Ambele seturi de filtre susţin aceiaşi algoritmi disponibili extensiei mcrypt sub forma mcrypt.ciphername, unde ciphername este denumirea algoritmului de criptare, care ar fi putut fi transmis funcţiei mcrypt_module_open(). De asemenea sunt disponibili şi următorii cinci parametri:

Parametrii filtrului mcrypt
Parametrul Necesar? Implicit Valori-exemple
mode Opţional cbc cbc, cfb, ecb, nofb, ofb, stream
algorithms_dir Opţional ini_get('mcrypt.algorithms_dir') Localizarea modulelor algoritmilor
modes_dir Opţional ini_get('mcrypt.modes_dir') Localizarea modulelor modurilor
iv Necesar nu este De obicei 8, 16, sau 32 baiţi de date binare. Depinde de cifru
key Necesar nu este De obicei 8, 16, sau 32 baiţi de date binare. Depinde de cifru

Example#1 Criptarea conţinutului unui fişier utilizând 3DES

<?php
$passphrase 
'My secret';

/* Transformă parola în text deschis
 * într-o pereche iv/key reproductibilă
 */
$iv substr(md5('iv'.$passphrasetrue), 08);
$key substr(md5('pass1'.$passphrasetrue) . 
               
md5('pass2'.$passphrasetrue), 024);
$opts = array('iv'=>$iv'key'=>$key);

$fp fopen('secert-file.enc''wb');
stream_filter_append($fp'mcrypt.tripledes'STREAM_FILTER_WRITE$opts);
fwrite($fp'Secret secret secret data');
fclose($fp);
?>

Example#2 Citirea unui fişier criptat

<?php
$passphrase 
'My secret';

/* Transformă parola în text deschis
 * într-o pereche iv/key reproductibilă
 */
$iv substr(md5('iv'.$passphrasetrue), 08);
$key substr(md5('pass1'.$passphrasetrue) . 
               
md5('pass2'.$passphrasetrue), 024);
$opts = array('iv'=>$iv'key'=>$key);

$fp fopen('secert-file.enc''rb');
stream_filter_append($fp'mdecrypt.tripledes'STREAM_FILTER_WRITE$opts);
$data rtrim(stream_get_contents($fp));
fclose($fp);

echo 
$data;
?>