首页 > 解决方案 > 如何从节点 js 发送加密文本并在打字稿中解密?

问题描述

我在index.js文件中的node.js中制作firebase云功能,

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内部函数中尝试了以下内容,calculatePricecrypto

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(用于距离)..

标签: javascriptnode.jstypescriptfirebaseencryption

解决方案


var hash = pbkdf2(String(request.query.distance * fare), salt, iterations);

这是一个哈希,它是一个单向函数,通常用于存储和验证密码而无法获得原始的纯值。

理论上 - 您可以在客户端(打字稿)上加密数据,例如使用crypto-jsWindow.crypto。为此,您需要与服务器(nodejs)安全地共享加密密钥,这不是一件容易的事。TLS (https) 将为您完成。

我还需要在打字稿中加密发送距离并获取加密值,并需要在节点 js 中进行解密。
请帮助我将数据从节点 js 安全地发送和接收到打字稿(用于计算的总价)以及从打字稿到节点js(距离)..

据我了解,您的目标是确保组件、客户端和服务器端操作之间数据的机密传输。

如前所述,使用https可确保通过加密通道发送数据。它是透明的——您只需发送/接收普通的普通值,但流量本身是安全加密的。只需确保通信的端点使用 https 协议(例如https://us-central1-sample-..)。

客户端也可以确保它与正确的服务器通信。仍然 - 您需要确保发送到服务器(nodejs)的数据来自正确的客户端。我相信对您来说最简单的选择是使用简单的用户身份验证。

长话短说 - 使用 https(发送/接收数据)将确保正确使用时通过加密通道发送值。


推荐阅读