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

  • Автор темы Автор темы vovanium
  • Дата начала Дата начала

vovanium

Новичок
Хотел для шифрования в дампере и бэкапере использовать шифрующие фильтры. Вроде так неплохо тестовый скриптик работал на винде, но оказалось что на двух рабочих хостингах шифрующих фильтров нет, при том что сами функции mcrypt на них работают.

Можете глянуть у себя
PHP:
<?php
echo 'PHP ' . PHP_VERSION . ', mcrypt filter - <b>' . (in_array('mcrypt.*', stream_get_filters()) ? 'found': 'not found') . '</b>';
?>
скрипт пишет версию php и найден или нет шифрующий фильтр.

Интересно это мне так повезло, или реально шифрующие фильтры редко стоят на серверах и не стоит их юзать.

UPD. Поправил скрипт, чтобы выводил версию и наличие фильтров.
 
Код:
Array
(
    [0] => convert.iconv.*
    [1] => mcrypt.*
    [2] => mdecrypt.*
    [3] => string.rot13
    [4] => string.toupper
    [5] => string.tolower
    [6] => string.strip_tags
    [7] => convert.*
    [8] => consumed
    [9] => dechunk
    [10] => zlib.*
)
 
Вурдалак
Ого прям реактивный ответ, еще наверное желательно версию PHP указывать, я проверял на 5.2.17 и 5.3.6, на винде 5.3.8 там нормально.
 
PHP 5.2.17, mcrypt filter - not found
PHP 5.2.16, mcrypt filter - not found
PHP 5.2.16, mcrypt filter - not found
PHP 5.2.14, mcrypt filter - not found
PHP 5.2.4-2ubuntu5.17, mcrypt filter - not found
 
PHP:
)www-user@linuxdev:~$ php -r "echo PHP_VERSION . PHP_EOL .  var_export(stream_get_filters(), true);"
5.3.4
array (
  0 => 'zlib.*',
  1 => 'bzip2.*',
  2 => 'convert.iconv.*',
  3 => 'mcrypt.*',
  4 => 'mdecrypt.*',
  5 => 'string.rot13',
  6 => 'string.toupper',
  7 => 'string.tolower',
  8 => 'string.strip_tags',
  9 => 'convert.*',
  10 => 'consumed',
  11 => 'dechunk',
  12 => 'http.*',
)www-user@linuxdev:~$
PHP:
root@userver:~# php -r "echo PHP_VERSION . PHP_EOL .  var_export(stream_get_filters(), true);"
5.3.2-1ubuntu4.10
array (
  0 => 'zlib.*',
  1 => 'bzip2.*',
  2 => 'convert.iconv.*',
  3 => 'string.rot13',
  4 => 'string.toupper',
  5 => 'string.tolower',
  6 => 'string.strip_tags',
  7 => 'convert.*',
  8 => 'consumed',
  9 => 'dechunk',
  10 => 'http.*',
)root@userver:~#

PHP:
array (
  0 => 'zlib.*',
  1 => 'bzip2.*',
  2 => 'convert.iconv.*',
  3 => 'string.rot13',
  4 => 'string.toupper',
  5 => 'string.tolower',
  6 => 'string.strip_tags',
  7 => 'convert.*',
  8 => 'consumed',
  9 => 'dechunk',
  10 => 'http.*',
)root@userver:~#
 
Да уж, похоже действительно туговато с этими фильтрами, а так всё хорошо работало, сжималось и шифровалось на лету.
 
Вурдалак
Можно, конечно, просто встроенные быстрее работают скорее всего. Тут просто если бы эти фильтры работали везде где есть mcrypt, тогда их легко можно заюзать, а так уже придется тестить альтернативные варианты.
Кстати кто-нибудь знает как эти фильтры вообще добавить, если их нет, но при этом mcrypt установлен? Нагуглил только похожий вопрос на стаке, но он остался без ответа. В доках написано, что типа фильтры потоков встроены их настраивать не нужно.
 
В общем вроде разобрался, на хабре подсказали, что именно шифрующие фильтры только в 5.3.3 добавили, просто в доках об это не упоминается, только в changelog
 
Сверху