GET-запрос успешно возвращает дешифрованный гист в первый раз, но пустой объект после перезапуска сервера - PullRequest
0 голосов
/ 16 сентября 2018

Использование библиотек JavaScript и nacl, чтобы получить суть GitHub и вернуть расшифрованный контент. Все методы nacl принимают и возвращают массивы UINT8, поэтому стоит отметить, что ключ также является массивом UINT8 из 32 случайных байтов.

   server.get('/fetchmessagefromself:id', (req, res) => {
      // TODO:  Retrieve and decrypt the secret gist corresponding to the given ID
      const id = req.query.id;
      github.gists.get({ id })
        .then((response) => {
          const gist = response.data;
          const file = Object.keys(gist.files);
          const box = gist.files[file].content;
          const nonce = nacl.util.decodeBase64(box.slice(-32));
          const ciphertext = nacl.util.decodeBase64(box.slice(0, -32));
          const text = nacl.secretbox.open(ciphertext, nonce, key);

          res.send(nacl.util.encodeUTF8(text));
        })
        .catch((err) => {
          res.json(err);
        });
    });

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

1 Ответ

0 голосов
/ 18 сентября 2018

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

Я сохранил ключ в отдельном файле .env, и теперь функция работает отлично!

...