Мой конфиг (от phpinfo()):PHP - stream_filter_append, не удалось найти фильтр (Mcrypt)
PHP Version 5.3.10
Registered Stream Filters: convert.iconv.*, mcrypt.*, mdecrypt.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, zlib.*, bzip2.*
mcrypt support: enable
mcrypt_filter support: enable
Version: 2.5.8
Supported ciphers: cast-128 gost rijndael-128 twofish cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes arcfour
Supported modes: cbc cfb ctr ecb ncfb nofb ofb stream
Таким образом, вы видите, что я включен Mcrypt.
Стараюсь
mcrypt_module_open('rijndael-256', '', 'ofb', '');
и это нормально.
Но когда я пытаюсь что-то вроде
stream_filter_append($fp, 'mcrypt.rijndael-256', STREAM_FILTER_WRITE, $opts);
У меня есть два предупреждения
stream_filter_append(): Could not open encryption module in ...
stream_filter_append(): unable to create or locate filter "mcrypt.rijndael-256" in ...
Я предполагаю, что это неправильно писать
stream_filter_append($fp, 'rijndael-256', STREAM_FILTER_WRITE, $opts); // without 'mcrypt.*'
, но в этом случае у меня есть только одно предупреждение
stream_filter_append(): unable to create or locate filter "rijndael-256" in ...
И последнее. Шифрование/описание с «rot13» работает хорошо
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);
Таким образом, вопрос, как для шифрования/дешифрования с некоторыми из методов Mcrypt?
a) Не знаю, почему это не удается, но б) просто что-то, что я видел раньше довольно часто, поэтому на всякий случай: rijndael-256 не aes256. aes256 по-прежнему rijndael-128 с 32-байтным/256-битным ключом. – VolkerK
Указывает, что запрошенный метод шифрования недоступен. У вас либо опечатка, либо один из шифров (rijndael-256) не скомпилирован в вашу версию mcrypt.so. –
@ kamlesh.bar .... но затем снова mcrypt_module_open работает, и необходимые шифры и режимы выводятся в phpinfo(), это странная часть - до тех пор, пока выполняются сценарии phpinfo() и stream_filter_append() «тем же» экземпляром php (а не одним модулем веб-сервера и одним через php-cli -> разные файлы php.ini) – VolkerK