|
mcrypt.* и mdecrypt.*
обеспечивают симметрическое шифрование и дешифрование при помощи
libmcrypt. Оба набора фильтров поддерживают те же алгоритмы, что и
расширение mcrypt в виде
mcrypt.ciphername, где
ciphername - это название шифра, как если
бы оно передавалось функции mcrypt_module_open().
Также доступны следующие пять параметров:
Таблица N-1. Параметры фильтра mcrypt Параметр | Обязателен? | По умолчанию | Пример значения |
---|
mode | Нет | cbc | cbc, cfb, ecb, nofb, ofb, stream | algorithms_dir | Нет | ini_get('mcrypt.algorithms_dir') | Путь к модулям алгоритмов | modes_dir | Нет | ini_get('mcrypt.modes_dir') | Путь к модулям режимов | iv | Да | N/A | Обычно 8, 16 или 32 байта бинарных данных. Зависит от шифра | key | Да | N/A | Обычно 8, 16 или 32 байта бинарных данных. Зависит от шифра |
Пример N-10. Шифрование вывода в файл используя 3DES
<?php $passphrase = 'My secret';
/* Turn a human readable passphrase * into a reproducable iv/key pair */ $iv = substr(md5('iv'.$passphrase, true), 0, 8); $key = substr(md5('pass1'.$passphrase, true) . md5('pass2'.$passphrase, true), 0, 24); $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); ?>
|
|
Пример N-11. Чтение зашифрованного файла
<?php $passphrase = 'My secret';
/* Turn a human readable passphrase * into a reproducable iv/key pair */ $iv = substr(md5('iv'.$passphrase, true), 0, 8); $key = substr(md5('pass1'.$passphrase, true) . md5('pass2'.$passphrase, true), 0, 24); $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; ?>
|
|
| |