-1

我需要以下登录模块和重置密码模块的方法。

a) “认证或登录模块”中的盐渍 MD5 技术

b) “重置密码”模块中的 MD5 哈希技术。

以及它应该如何工作,我在下面写下描述。

当客户端请求登录页面时,服务器应生成一个随机数 salt,并将其与页面一起发送给客户端。客户端上的 JavaScript 代码计算用户输入密码的 MD5 哈希值。然后它将盐连接到散列并重新计算 MD5 散列。然后将该结果发送到服务器。服务器从其数据库中选择密码的哈希值,连接盐并计算 MD5 哈希值。如果用户输入了正确的密码,这两个哈希值应该匹配。服务器将两者进行比较,如果它们匹配,则对用户进行身份验证。

任何引用任何相同的链接。

4

1 回答 1

0

由于您使用的是 HTTPS,因此您无需在客户端经历散列 + 加盐密码的所有麻烦 - 您可以使用 HTTPS 为您处理在客户端/服务器之间传输的密码的机密性。

只需将密码发送到服务器。服务器将负责对密码进行散列+加盐,并将该值与它存储在数据库中的值进行匹配。

对于 Salting + Hashing 服务器端,我会推荐 BCrypt:

http://en.wikipedia.org/wiki/Bcrypt

您可以使用它为存储的每个密码生成唯一的盐。哈希算法本身也比 SHA1/MD5 慢得多(SHA1/MD5 是为了速度而设计的 - 在存储密码时不是一个有用的属性)。

于 2014-08-22T05:47:51.573 回答