如何验证使用随机salt散列的密码

How do I verify a password which is hashed using a random salt?

本文关键字:salt 随机 密码 何验证 验证      更新时间:2023-09-26

我正在开发一个web应用程序。现在,从安全角度来看,当密码从客户端发送到服务器时,需要对其进行加盐哈希处理。现在我的问题是,如果我随机生成一个salt,将其附加到密码中并对组合进行散列,那么如何验证这个密码由于生成的salt是随机的,所以每次salt+密码组合的哈希都会不同如果我将生成的相同salt与用户凭据一起发送到服务器,这将暴露salt暴露的salt会造成类似的麻烦,因为试图破解密码的人可以用不同的密码附加暴露的salte以获得哈希并进行匹配。我已经查看了许多网站和堆栈溢出问题,但没有什么能完全满足我的需求。

有一些工具可以读取浏览器的内存并窃取输入的密码。因此,在客户端也需要盐水散列。

您必须将salt保留在代码的服务器端。

对用户进行身份验证时,会将密码发送到服务器。服务器附加salt,然后对密码进行散列运算。salt应该存储在服务器端代码或数据库中的某个位置。

您应该永远不要将salt发送到应用程序的客户端。

在数据库中保留salt是没有问题的。salt只是为了确保攻击者不会使用一些包含大量计算哈希值及其相应密码的表来查找您的受损数据库的密码。对于salt,攻击者唯一的选择就是暴力。

因此,为了让攻击者更难使用暴力并从哈希中找出密码,我建议每个用户使用一个长而安全的随机salt。

可以在"为什么我们使用";盐";保护我们的密码?