Я пишу веб-приложение для хранения файлов в зашифрованном виде, но которое впоследствии может быть расшифровано в среде, отличной от php. Итак, скажем, пользователь загрузил файл с именем doc.pdf
. Затем он зашифровывается и хранится на сервере в зашифрованном виде. Затем пользователь может загрузить зашифрованный файл и расшифровать его в своей системе.Эффективный метод для выполнения внешних программ в PHP?
Поскольку файлы, зашифрованные с использованием расширения mcrypt php, не переносятся, я решил написать программу в c с именем «encrypt». Тогда я призываю его в PHP:
$return_var=exec("encrypt $file_path $key");
Теперь еще один метод, который я думал о том, чтобы создать сервер шифрования, который в основном обертка вокруг программы шифрования с возможностью прослушивания запросов через сокеты. Поэтому давайте скажем, что php-скрипт теперь сделает запрос к этой программе, предоставляя имя файла и ключ для шифрования.
Я думал, что это может быть более гибким подходом, поскольку загрузка процесса шифрования может быть легко скорректирована, поместив программу сервера шифрования на другой компьютер.
Теперь, мой вопрос в том, какой из двух подходов эффективен (с точки зрения скорости, обработки большого количества клиентов и т. Д.)?
Это действительно окупится, если вы сможете передавать входящие данные на то, что выполняет шифрование, а затем напрямую записывать его на диск. Обработка файлов, как если бы это пакетный процесс, будет намного менее эффективна, хотя бы потому, что вам придется загружать данные в память на Х количество раз и, возможно, даже с диска (что также потенциально небезопасно). –