发送密码的散列而不是未散列的密码是一个坏主意吗?

IPr*_*ory 1 javascript security passwords hash

例如,如果用户启用了JavaScript,我们会发送哈希密码并发送哈希值.如果没有,我们发送密码unhashed和一个标记,以标记它是未散列的.然后我们构建哈希(如果它没有哈希)并将其与存储的哈希进行比较.

这似乎是安全和简单的.为什么它不是一种流行的密码发送方式?我错过了什么?

换句话说:为什么更好的是丢失哈希然后没有密码?(我们大多数人只有很少的密码到很多网站)

Jon*_*noW 9

这里真正的问题是中间人攻击,有人嗅到线下的东西.如果您发送密码的哈希值或密码本身并不重要,如果下游有人可以读取此密码,他们可以以该人身份登录.唯一安全的选择是使用SSL来阻止除服务器以外的任何人解密密码哈希/密码.

  • SSL也可以被规避.这样做有一个中间人 (2认同)

Ser*_*gio 7

JavaScript总是可以被篡改.通过使用JavaScript散列密码,您至少会暴露有关如何存储密码的规则.从黑客的角度来看,捕获真实密码并将其发送到您的系统或捕获密码并将其发送到您的系统是同样的事情.

如果你真的需要提高密码安全性,我建议使用https并在服务器端散列它.别忘了使用盐键.