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);