在javascript中使用加密模块

在javascript中使用加密模块,javascript,node.js,security,cryptography,Javascript,Node.js,Security,Cryptography,我有以下情况: 客户端和服务器通过node.js连接。 客户端需要向服务器发送密码,所以我想对其进行加密。 不用说我想使用的安全协议,我需要一些库来使我的生活更轻松。我读到有几种密码,例如 问题是,如果客户端需要从服务器端下载这些库,并且连接“处于清除状态”,那么该安全协议是否可靠 我希望问题是清楚的 编辑:我需要添加一些详细信息: 我想使用对称加密: 第一个客户端和服务器交换密码使用DiffieHelman暂时没有关于“中间人攻击”的问题 然后使用该密钥和密码,例如AESclient可以向服务

我有以下情况:

客户端和服务器通过node.js连接。 客户端需要向服务器发送密码,所以我想对其进行加密。 不用说我想使用的安全协议,我需要一些库来使我的生活更轻松。我读到有几种密码,例如

问题是,如果客户端需要从服务器端下载这些库,并且连接“处于清除状态”,那么该安全协议是否可靠

我希望问题是清楚的

编辑:我需要添加一些详细信息:

我想使用对称加密: 第一个客户端和服务器交换密码使用DiffieHelman暂时没有关于“中间人攻击”的问题 然后使用该密钥和密码,例如AESclient可以向服务器发送密码


为了做到这一点,我需要一些库来简化我的生活。

https具有加密功能。如果您正在使用它,则不需要另一个。始终使用它。您是否只是对密码身份验证的一般工作方式感到困惑?密码永远不会在客户端加密,除非使用SSL,它是以纯文本形式发送的,但它也不会存储在服务器上,服务器上会存储一个哈希值并与发送的密码进行比较,或者您正在设计某种自定义方法,出于某种奇怪的原因需要客户端加密。我想你的问题的答案是,你不需要在客户端加密密码,一切都在服务器端完成。@adeneo客户端应该发送他的密码,从什么意义上说,它从来没有在客户端加密过?好吧,这是什么样的身份验证,只是常规登录?据我所知,目前没有网站对客户端密码进行加密。使用SSL,当数据位于用户和服务器之间时,所有内容都被加密以防止攻击,但密码客户端没有加密。密码以明文形式发送到服务器,在服务器上,密码会以一个盐渍散列进行比较,然后被丢弃,这就是几乎每个登录系统使用HTTPS的方式。然后,连接不仅被加密,而无需任何进一步的编程工作,而且客户机还有一种方法来验证服务器是否就是它假装的服务器。