Добавить объект JSON в зашифрованный текстовый файл PHP - PullRequest
0 голосов
/ 28 ноября 2018

Обычно я передаю объекты JSON из JavaScript и сохраняю их с помощью PHP.

Затем я добавляю их в определенный текстовый файл, например:

        $theFile = fopen("Data/" . FQ . ".txt", "a+");
        fwrite($theFile, $data.PHP_EOL);
        fclose($theFile);

Можно ли добавить код для сохранения этой информации в виде зашифрованного текстового файла?

В идеале я хочу:

  • Все файлы на моем сервере должны быть зашифрованы
  • Секретный ключ, который хранится на моем локальном компьютере

Чтобы расшифровать, я бы:

  • Передал данные с сервера на локальный компьютер
  • Используйте мой локальный секретный ключ для расшифровки

Я хочуэто так, что если мой сервер скомпрометирован, все данные будут бессмысленными без секретного ключа (который НЕ хранится на сервере в любом месте).

1 Ответ

0 голосов
/ 28 ноября 2018

Вам понадобится алгоритм симметричного шифрования, такой как AES.Оказывается, есть неплохая реализация JavaScript в составе Forge.

https://github.com/digitalbazaar/forge#aes

Вы захотите использовать режим CBC для шифрования полезной нагрузки и отправки ее на свой сервер..

Если вы не можете сохранить это в текстовом файле, вам придется кодировать base64 эти двоичные данные. Сделайте это на стороне сервера. Код вашего клиента не должен знать или заботиться о том, как ваш сервер на самом деле хранит данные.Кроме того, вы сэкономите 33% полосы пропускания и немного клиентского ЦП.

В качестве бонуса к base64-кодированию вы сможете разделять строки в текстовом файле.

Когда вы возвращаете данные своему клиенту, вы должны декодировать base64 и отправлять им двоичные зашифрованные данные.Затем клиент расшифрует его, используя ключ, который знает только он.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...