【发布时间】:2013-07-03 02:01:00
【问题描述】:
鉴于您确实必须在客户端执行密码散列,您如何实现服务器端加盐?
我能想到的第一个解决方案是在执行哈希之前从服务器的用户表中询问用户的盐。但这意味着你确认用户“存在”,因为你给了他用户的有效盐。
我还认为,与其将 salt 存储在用户的表中,不如让 salt 成为用户可用的东西,例如,用户名的变体。但是可能会出现一致性问题,因为服务器和客户端需要记住盐是如何从提供的用户数据中获取的。
最好的方法是什么?
【问题讨论】:
-
谁说你必须在客户端执行散列?我总是在服务器端做。
-
@Justin 有时客户端散列很有用,尤其是当您不希望服务器访问明文密码时。我知道客户端的散列并不能解决散列倾向于解决的安全问题,但在某些情况下,它可能会很方便。
标签: security hash passwords client-side salt