Эффективный метод для выполнения внешних программ на PHP? - PullRequest
2 голосов
/ 08 января 2012

Я пишу веб-приложение для хранения файлов в зашифрованном виде, но позже оно может быть расшифровано в среде без php. Допустим, пользователь загрузил файл с именем doc.pdf. Затем он шифруется и сохраняется на сервере в зашифрованном виде. Затем пользователь может загрузить зашифрованный файл позже и расшифровать его в своей системе.

Поскольку файлы, зашифрованные с использованием расширения mcrypt в php, являются непереносимыми, я решил написать программу на языке c под названием «encrypt». Затем я вызываю его в php:

$return_var=exec("encrypt $file_path $key");

Теперь еще один метод, о котором я подумал, - это создать сервер шифрования, который, по сути, является оболочкой для программы шифрования с возможностью прослушивания запросов через сокеты. Допустим, скрипт php сделает запрос к этой программе, указав имя файла и ключ для шифрования.

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

Теперь мой вопрос: какой из двух подходов эффективен (с точки зрения скорости, обработки большого количества клиентов и т. Д.)?

Ответы [ 3 ]

1 голос
/ 08 января 2012

Большая часть процесса шифрования будет потрачена на выполнение симметричного шифрования, например, AES. AES - и большинство криптографических шифров - относительно быстрые. Существует большая вероятность того, что вы будете ожидать ввода-вывода, а не шифрования. Создание серверного приложения для этого почти наверняка является излишним. Сначала я выбрал бы локальное приложение и позже вернулось бы к тому, что в основном является оптимизацией, если это действительно необходимо.

0 голосов
/ 08 января 2012

Я просто по причинам документов просто ZIP / сожму файлы с паролем и сохраню этот пароль для загрузки пользователями и т. Д.

Таким образом, пользователю не нужны никакие инструменты дешифрования на его конце, и защита шифрования / почтового индекса уже сделана для вас.

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

0 голосов
/ 08 января 2012

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

Просмотрите расширение mcrypt:

http://de2.php.net/manual/en/mcrypt.examples.php

и просто запишите полученную строку в целевой файл.

...