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