javascript - 使用 node.js 通过 HTTP 将文件加密为字符串

标签 javascript node.js http encryption

我正在寻找有关我想做什么的建议。 目前,我使用服务器 A 通过 HTTP 从服务器 B 请求文件。

服务器 B 检查请求的路径是否存在,并通过 HTTP 返回文件内容,作为字符串。一切都清楚了。

我想做的是加密传输,所以在将文件内容发送回服务器 A 之前,我想以服务器 B 能够逆转的方式保护它。

我想要它快速、安全(salt)并且不要太大。 (文件可以包含数千个字符)

实现该目标的最佳方法是什么?我在两台服务器上都使用 node.js。

我也在考虑添加身份验证并通过 HTTPS 来保护内容,假设保护(加密/等...)不会被破坏,它有用吗? (Auth 可以限制请求并避免使用过多的带宽,但是 HTTPS 真的值得吗?)

我对密码不太了解,用它可能不合适,请指导我。

最佳答案

要加密 HTTP 请求的内容,请使用 HTTPS。不要费心重新发明轮子。

HTTPS 将使能够拦截这些服务器之间通信的人无法读取您来回发送的文件。 http://book.mixu.net/node/ch10.html描述了在客户端和服务器上的 Node 应用程序中打开 HTTPS 的步骤。如果您在 Node 应用程序前使用 Nginx 或 Apache 作为代理,您也可以找到它们的说明。

HTTPS 不会限制对服务器的访问。为此,您需要为此使用身份验证/授权系统。 http://passportjs.org是用于此目的的非常标准的 NodeJS 模块。

I want it fast, secure (salt) and not too big. (The files can contain thousands of characters)

Salt 是一个在这里不适用的概念。

您在单向哈希函数(如 MD5 或 SHA)上使用盐,这样如果您对同一个字符串进行不同次加密,就不会得到相同的结果。

如果用户 A 和 B 的密码均为“Password123”,则它们将是数据库中的 2 个不同的散列字符串。这意味着破解用户A的密码不会自动破解用户B的密码。

关于javascript - 使用 node.js 通过 HTTP 将文件加密为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23279687/

相关文章:

javascript - Jquery slider 不适用于 Angular

node.js - typescript 异步/等待不工作

http - Flickr API iOS 应用程序 "POST size too large!"

javascript - 具有奇怪哈希文件名的 CSS 和 JS

javascript - 如何使用 npm.commands.test 功能

javascript - 如何将数组的值添加到对象

javascript - 为什么 process.kill() 没有杀死进程?

node.js - 无法从亚马逊Windows实例的公共(public)IP访问node.js服务器

javascript - 获取html源代码

可靠地设置 Etag