我正在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
在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(用于距离)来安全地发送和接收数据。
答案 0 :(得分:0)
var hash = pbkdf2(String(request.query.distance * fare), salt, iterations);
这是一个哈希,它是一种单向函数,通常用于存储和验证密码而无法获得原始的原始值。
理论上-您可以使用crypto-js或Window.crypto在客户端(打字稿)上加密数据。为此,您需要与服务器(nodejs)安全地共享加密密钥,这并非易事。 TLS(https)将为您完成。
我还需要在Typescript中发送带有加密的距离并获取加密的值,并需要在Node JS中进行解密。 请帮助我安全地从节点js到打字稿(用于计算的总价)以及从打字稿到节点js(用于距离)来安全地发送和接收数据。
据我了解,您的目标是确保组件,客户端和服务器端操作之间的数据保密传输。
如前所述,使用 https 可确保通过加密通道发送数据。它是透明的-您只发送/接收普通的普通值,但流量本身已被安全加密。只需确保通信的端点使用https协议即可(例如https://us-central1-sample-..
)。
同样,客户端可以确保它与正确的服务器通信。仍然-您需要确保发送到服务器(nodejs)的数据来自正确的客户端。我相信最适合您的选择是使用简单的用户身份验证。
长话短说-使用https(发送/接收数据)将确保在正确使用时通过加密通道发送值。