Ошибка типа: данные должны быть буфером - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть запрос http, в котором я хочу передать некоторые конфиденциальные данные, поэтому я попытался зашифровать эти данные.В своем приложении React Native я сгенерировал пару ключей с помощьюact-native-rsa-native и зашифровал мою строку с помощью открытого ключа с помощью функции RSA.encrypt (моя строка, мой открытый ключ).

После этого я отправляю сгенерированные данные крипты в свой http-запрос и пытаюсь расшифровать их в своей среде node.js (Google Cloud Functions).Для этого я использую модуль Crypto.

Я импортирую его с помощью:

const crypto = require('crypto');

И я пытаюсь расшифровать свои данные с помощью закрытого ключа RSA, сгенерированного в моем модуле реагирования:

crypto.privateDecrypt(rsaPrivateKey, myCryptedString)

Но я получаю сообщение об ошибке:

TypeError: Данные должны быть буфером в TypeError (native) в Object.privateDecrypt (crypto.js: 375: 12) при экспорте.createPaymentMethod.functions.https.onRequest (/user_code/index.js:928:10) в cloudFunction (/user_code/node_modules/firebase-functions/lib/providers/https.js:37:41) в / var / tmp / worker/worker.js:783:7 в /var/tmp/worker/worker.js:766:11 в _combinedTickCallback (внутренний / process / next_tick.js: 73: 7) в process._tickDomainCallback (внутренний / process / next_tick.js): 128: 9)

У кого-нибудь есть решение моей проблемы?

1 Ответ

1 голос
/ 20 апреля 2019

Согласно документации , зашифрованный текст должен быть экземпляром Buffer, а не String, поэтому вы можете попытаться обернуть зашифрованный текст в буфер:

crypto.privateDecrypt(rsaPrivateKey, Buffer.from(myCryptedString))

...