2010-06-03 2 views
1

Есть ли простой/простой способ расширить класс загрузки файлов для шифрования файлов, которые загружаются? Не только шифрование имени файла, но и данные в самом файле.Расширить класс загрузки файлов для использования шифрования

Я использую mcrypt для шифрования db и предпочитаю использовать его для шифрования файлов.

Просмотрев библиотеку Upload.php, я не вижу очевидного места, где загружается загруженный файл, где я предполагаю, что я бы зашифровал шифрование.

Любая помощь/совет будут оценены.


редактировать:

Что я имею в виду, что где-то в do_upload() (я имею в виду file_temp) файл получает шифруется перед перемещается (не копируется!) В конечный пункт назначения. Однако я не вижу нигде в файле Upload.php, где код работает с данными любых файлов за пределами имени файла, размера, типа и т. Д. Имеет ли смысл этот подход?

ответ

0

Я решил отказаться от изменения класса загрузки. Я сделал это после того, как файл был загружен, откройте файл, зашифруйте его и запишите его снова.

$f=file_get_contents(BASE_PATH.$fileFullPath) or die ('<script>window.parent.transUpdateFail(\'no gfc'.$fileFullPath.'\');</script>'); 
$encf=$this->encrypt->encode($f,$this->e_key) or die ('<script>window.parent.transUpdateFail(\'no encrypt\');</script>'); 
$nf=fopen(BASE_PATH.$fileFullPath,"r+") or die ('<script>window.parent.transUpdateFail(\'no open '.$fileFullPath.'\');</script>'); 
$fw=fwrite($nf,$encf) or die ('<script>window.parent.transUpdateFail(\'no fwrite\');</script>'); 
fclose($nf); 
0

Вместо шифрования только загрузки, используйте HTTPS/SSL для шифрования всего соединения между клиентом и сервером.

+0

Связь * * Зашифровано уже. Мне нужно, чтобы файлы были зашифрованы, когда они живут на сервере. Однако решение trucrypt не работает в этом случае. Спасибо! – stormdrain

+2

Ах, соединение уже зашифровано. Затем загрузите файл и зашифруйте его на сервере с помощью mcrypt. – mcandre

+0

Это, наверное, то, что я бы предложил. – DRL