Как отправить зашифрованный текст с узла JS и расшифровать в машинописи? - PullRequest
0 голосов
/ 06 февраля 2019

Я выполняю функцию облачной базы firebase в файле node.js внутри index.js файла как,

exports.calculatePrice = functions.https.onRequest((request, response) => {
    cors(request, response, () => {
         var fare = 10; 
         response.send(request.query.distance * fare);
    })
});

Здесь response.send(request.query.distance * fare) - это расчет общего тарифа на основе пройденного расстояния и тарифа.

Здесь мне нужно отправить эти response.send(request.query.distance * fare) в качестве защищенных данных и получить их в машинописном тексте как,

let distance = 20;
this.http.get('https://us-central1-sample-project.cloudfunctions.net/calculatePrice/?distance=' + distance).subscribe(data => {
    this.finalFare = data;
})

Мне также нужно отправить distance с зашифрованным в машинописном тексте и получитьзашифрованное значение и его необходимо расшифровать в node js ..

Простым способом при получении данных в this.http.get(https://us-central1-sample-......), в котором мне нужно пройти зашифрованное расстояние и получить его в index.js и после расчетаиз общего тарифа было сделано, необходимо отправить обратно полный тариф с шифрованием и получить расшифрованный общий тариф в home.ts (файл машинописного текста) и присвоить this.finalFare = data ..

. Я пробовал ниже вindex.js внутри calculatePrice функция путем импорта crypto,

var salt = crypto.randomBytes(128).toString('base64');
var iterations = 10000;
var hash = pbkdf2(String(request.query.distance * fare), salt, iterations);

response.send(hash).

Но это не работает ..

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

Пожалуйста, помогите мне безопасно отправлять и получать данные с узла js на машинопись (для расчета общей стоимости), а также с машинописик узлу JS (для расстояния) ..

1 Ответ

0 голосов
/ 08 февраля 2019
var hash = pbkdf2(String(request.query.distance * fare), salt, iterations);

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

Теоретически - вы можете зашифровать данные на стороне клиента (машинопись), например, используя crypto-js или Window.crypto .Для этого вам необходимо безопасно поделиться ключом шифрования с сервером (nodejs), что является непростой задачей.TLS (https) сделает это за вас.

Мне также нужно отправить расстояние с зашифрованным в машинописи и получить зашифрованное значение, а также сделать расшифровку в узле js.Пожалуйста, помогите мне безопасно отправлять и получать данные с узла js на машинопись (для расчета общей стоимости), а также с машинописи на узел js (для расстояния) ..

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

Как уже говорилось, использование https обеспечивает отправку данных по зашифрованному каналу.Это прозрачно - вы просто отправляете / получаете обычные простые значения, но сам трафик надежно зашифрован.Просто убедитесь, что сообщенные конечные точки используют протокол https (например, https://us-central1-sample-..).

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

Короче говоря - использование https (отправка / получение данных) обеспечит отправку значений по зашифрованному каналу при правильном использовании.

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