вопрос фильтра конверсий php.mcrypt установлен, но отсутствует в списке фильтров - PullRequest
1 голос
/ 15 ноября 2011

Я пытаюсь реализовать «Фильтры шифрования» из примера http://www.php.net/manual/en/filters.encryption.php:

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

Это дает мне следующее предупреждение:

Предупреждение: stream_filter_prepend () [function.stream-filter-prepend]: невозможно найти фильтр "mcrypt.tripledes"

У меня установлен и работает mcrypt.

Вот печать mcrypt_list_algorithms ():

Array ( [0] => cast-128 [1] => gost [2] => rijndael-128 [3] => twofish [4] => arcfour [5] => cast-256 [6] => loki97 [7] => rijndael-192 [8] => saferplus [9] => wake [10] => blowfish-compat [11] => des [12] => rijndael-256 [13] => serpent [14] => xtea [15] => blowfish [16] => enigma [17] => rc2 [18] => tripledes ) 

Вот печать stream_get_filters ():

Array ( [0] => string.rot13 [1] => string.toupper [2] => string.tolower [3] => string.strip_tags [4] => convert.* [5] => consumed [6] => convert.iconv.* [7] => bzip2.* [8] => zlib.* )

Кто-нибудь знает, в чем здесь проблема?

1 Ответ

0 голосов
/ 22 апреля 2012

PHP changelog для версии 5.3.3:

Добавлена ​​поддержка потокового фильтра для расширения mcrypt (перенесено из mcrypt_filter)

Так что для работы этого примера вам нужна как минимум эта версия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...