PHP. Учебник. 2005

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

Приложение N. Список доступных фильтров

След.

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

- mcrypt.* и mdecrypt.*

обеспечивают симметрическое шифрование и дешифрование при помощи

libmcrypt. Оба набора фильтров поддерживают те же алгоритмы, что и

расширение mcrypt в виде

mcrypt.ciphername, где

ciphername - это название шифра, как если

бы оно передавалось функции mcrypt_module_open().

Также доступны следующие пять параметров:

-

Таблица N-1. Параметры фильтра 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 байта бинарных данных. Зависит от шифра

Пример 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;

?>

Пред.

Начало

След.

Компрессионные фильтры

Уровень выше

Список поддерживаемых транспортных протоколов 22222

Free Web Hosting