【发布时间】:2015-12-28 16:04:01
【问题描述】:
我正在使用scrypt 来生成用户密码的强哈希值。我想登录用户,但不想通过网络以明文形式发送密码,我如何检查密码是否正确(没有往返),因为它是加盐的?
我有一个客户端/服务器方案。客户端是桌面计算机上的应用程序(不是网站,也不是 http 服务器)。
我怎样才能做到这一点?我只走了这么远:我正在客户端上生成盐 + 哈希,从中形成一个 mcf 并将其发送到我的服务器。将 mcf 保存到数据库。我没有发送密码,只是几乎没用的哈希(因为 scrypt 应该非常强大,并且需要几百万年才能恢复它)。 我现在如何将用户登录到我的服务,而不将明文密码发送到服务器进行比较?我不能重新散列它,因为它会由于不同的盐而导致不同的散列?我需要将盐发送到客户端,对密码进行哈希处理,将哈希发送到服务器,进行比较,然后发回一些身份验证令牌。
我怎样才能做到这一点?身份验证令牌真的安全吗?我猜它可以简单地用来冒充任何人?
【问题讨论】:
标签: security authentication bcrypt pbkdf2 scrypt