2014-09-30 161 views
0

我想通过HTTP发送密码。Javascript密码哈希发送不安全

场景:

  1. 用户输入自己的用户名和密码的形式。
  2. 密码被散列并通过用户名发送到服务器。
  3. 服务器检查密码哈希和用户名并验证用户。 (服务器也不知道明文密码)

如果某人以某种方式拦截了验证消息,他将获得散列密码和用户名,并且他可能会登录到该用户的帐户。根据服务器,实质上,散列密码是密码。

这是事情:我不在乎。很少有人会将数据劫持,即使如此,如果您的帐户被盗,这并不是一个问题,您可以创建一个新帐户。

问题:什么是在JavaScript中散列用户密码的好方法?散列不能使用随机盐,因为它需要被服务器识别。

我唯一关心的是用户的纯文本密码被发现如果邮件被拦截。原因是明文密码也可能被用来危害他人使用的其他服务,这些服务实际上可能包含重要信息。

编辑:澄清,问题主要是关于什么哈希算法使用,如果有一个轻量级库。

回答

0

如果安全性实际上不是问题,例如没关系的人危害您的系统,并要盐的唯一原因哈希是防止使用彩虹表,并从被确定的明文密码,然后做到这一点:

  • 计算配备充分长盐在服务器上的每个密码,并将其存储在服务器上(就像如何最系统通常存储在数据库中的密码)

  • 送盐给用户以明文

  • 计算盐腌哈希并发回

如果我正确地思考这个问题,这仍然会阻止使用彩虹表。

否则,只要去https? :P

+0

我想这与我所能得到的答案差不多,我最终做的只是半放弃和使用快速哈希函数,并将用户名用作简单盐。 “推荐”散列算法在移动设备上花费了几秒钟的时间。 – mukunda 2014-10-01 23:23:32