Шифрующие фильтры

mcrypt.* и mdecrypt.* обеспечивают симметричное шифрование и дешифрование при помощи libmcrypt. Оба набора фильтров поддерживают те же алгоритмы, что и расширение mcrypt в виде mcrypt.ciphername, где ciphername - это название шифра, как если бы оно передавалось функции mcrypt_module_open(). Также доступны следующие пять параметров:

Параметры фильтра mcrypt
Параметр Обязателен? По умолчанию Пример значения
modeНетcbccbc, 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 байта бинарных данных. Зависит от шифра

Пример #1 Шифрование вывода в файл используя 3DES

$passphrase = 'My secret';
/* Включает читаемую секретную фразу
 * в воспроизводимую пару iv/key
 */
$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('secret-file.enc', 'wb');
stream_filter_append($fp, 'mcrypt.tripledes', STREAM_FILTER_WRITE, $opts);
fwrite($fp, 'Secret secret secret data');
fclose($fp);

Пример #2 Чтение зашифрованного файла

$passphrase = 'My secret';
/* Включает читаемую секретную фразу
 * в воспроизводимую пару iv/key
 */
$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('secret-file.enc', 'rb');
stream_filter_append($fp, 'mdecrypt.tripledes', STREAM_FILTER_READ, $opts);
$data = rtrim(stream_get_contents($fp));
fclose($fp);
echo $data;


add a note add a note User Contributed Notes Шифрующие фильтры - [0 notes]
There are no user contributed notes for this page.
 
show source | credits | sitemap | contact | advertising | mirror sites
Copyright © 2001-2013 The PHP Group
All rights reserved.
This mirror generously provided by: Cronyx Plus LLC
Last updated: Tue Apr 16 20:41:06 2013 MSK


Смотрите также:
Описание на ru2.php.net
Описание на php.ru