密码哈希(非SSL)

Sta*_*low 10 javascript security authentication encryption

在非ssl传输的情况下,密码如何从浏览器发送到服务器?

我想在发送之前使用bcrypt来哈希密码+盐...但是似乎没有针对bcrypt算法的javascript实现...

是md5,SHA-1足够好吗?

PS:我的网站没有存储任何用户个人信息..我只是希望用户的密码不被黑,因为用户可能在包含他/她个人信息的其他网站上使用相同的密码

kem*_*002 22

说实话,你可以在前端哈希,但它不会解决你的根本问题.由于您要存储哈希以供以后验证,所以黑客需要知道的是哈希值.然后黑客可以将散列值发送给您,您的系统会将其验证为正确的值.您实际上是将未加密的密码发送到系统.

为了有效,转移需要通过SSL加密.

实际上,解决哈希问题的简单方法就是在中间攻击中扮演那个人.由于它不使用SSL,因此使用浏览器的人无法知道HTML内容不是来自您的服务器.攻击者可以简单地将他的代码放在客户端和服务器之间,并在HTML中添加其他代码来密钥记录密码.然后发布的信息将发送给攻击者; 他或她采取所需的(在这种情况下是密码),然后将信息转发到您的服务器.你和攻击者都不会知道你没有互相沟通.

这就是您必须从可验证的来源购买证书的原因.他们正在验证您正在与之通信的服务器是他们所说的人.

相关:中毒DNS

  • @Ishtar没有帮助.如果您实际上要使用用户表中的哈希进行身份验证,则需要在进行哈希之前以某种方式将其提供给浏览器...这意味着现在您只是实施质询/响应身份验证真的很差(并且仍然容易受到重播攻击).如果你不知道自己在做什么,这真的不是一个乱七八糟的地方.:) (6认同)
  • +1真正的SSL加密+明文传输的密码.哈希在后端. (3认同)