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

时间:2014-04-24 20:59:10

标签: javascript node.js http encryption

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

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

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

我希望它快速,安全(盐)而不是太大。 (这些文件可以包含数千个字符)

实现这一目标的最佳途径是什么?我将node.js与两个服务器一起使用。

我还考虑添加身份验证并通过HTTPS来保护内容,假设保护(cryptage / etc ...)不能被破坏,它是否有用? (Auth可以限制请求并避免使用太多带宽,但HTTPS确实值得吗?)

我对密码知之甚少,可能不适合在那里使用,请指导我。

1 个答案:

答案 0 :(得分:1)

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

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

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

  

我希望它快速,安全(盐)而不是太大。 (这些文件可以包含数千个字符)

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

您在单向散列函数(如MD5或SHA)上使用salt,这样如果您对同一个字符串加密不同的时间,它就不会得到相同的结果。

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