Зашифрованные архивы в php

KOLANICH

Новичок
Столкнулся с необходимостью создания зашифрованных архивов в php.
Использовать консоль нельзя.
Поскольку zipArchive не поддерживает шифрование, придётся выкручиваться по-другому.
Это не совсем совместимо с шифрованием архивов по стандарту, зато хоть как-то будет работать.

есть такой потоковый фильтер mcrypt.имя_шифра
PHP:
<?php
//оттуда
//  http://php.net/manual/en/filters.encryption.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('secret-file.enc', 'wb');
stream_filter_append($fp, 'mcrypt.tripledes', STREAM_FILTER_WRITE, $opts);
fwrite($fp, 'Secret secret secret data');
fclose($fp);
?>
и есть потоковая обёртка
php://filter
которая применяет фильтр к файлу

как используя php://filter применить mcrypt, если он требует параметры

мне кажется, что тут нужно создать свой фильтр, включающий в себя мкриптовский и его параметры (отдекорировать мкриптовский фильтр), после чего заюзать php://filter, поправьте, если я неправ

декорация фильтров кажись есть тутhttps://github.com/caefer/StreamHitching
 

fixxxer

К.О.
Партнер клуба
если уж делаешь несовместимое с зипом шифрование - не проще ли взять phar?
 

KOLANICH

Новичок
1 phar совместим
2 в phar добавлены ненужные файлы
3 я с удовольствием бы сделал совместимое, но в пыхе не поддерживаются шифрованные архивы
 
Сверху