@Mellowtoy

Как зашифровать файл на сервре с помощью PHP?

Добрый вечер!

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

Поэтому обращаюсь к вам с вопросом. Как это сделать? Есть готовые функции в PHP?
Я слышал про mcrypt, но он шифрует строковые данные, а мне-то нужно шифровать и файлы, и mp3, и картинки, и все что угодно. Как это сделать?

Спасибо.

UPD: Спасибо за ответы, суть уловил. Шифрую файлы через средства самого linux, но тут другой вопрос появился. Где хранить ключи шифрования? После загрузки файла пользователем я должен буду его зашифровать сгенерированным ключем, но мне его надо где-то хранить, чтобы я потом смог его расшифровать для отдачи. Где его хранить? Хранить в базе на том же сервере мне кажется совсем небезопасным вариантом и тогда вся суть шифрования теряется. Поправьте, если я не прав.
  • Вопрос задан
  • 2947 просмотров
Решения вопроса 1
sfi0zy
@sfi0zy
Creative frontend developer
Как вариант можно использовать не функции PHP, а что-то из самого линукса, например gpg, вызывая его через shell_exec. Вероятно это не лучшее решение с точки зрения производительности, но для простенького проекта может и подойти.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Denormalization
@Denormalization
Можно использовать php.net/manual/ru/function.openssl-encrypt.php
Шифровать каким-нибудь aes-256-cbc. Ключ + вектор генерировать для каждого файла, и отдавать их юзеру, чтобы только он мог забрать файл :)
Ответ написан
zooks
@zooks
Frontend
А причем здесь PHP? Вы им просто вызываете Linux-команду через exec.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы