恢复密码生成

时间:2013-02-25 07:36:46

标签: iphone ios password-recovery forgot-password

在我们的应用程序测试期间,发现如果用户忘记密码,则无法进入应用程序。

在发现这一点时,我们实现了如下密码生成技术 1.使用用户信息创建特定字符串。 2.在字符串上应用SHA1 3.将SHA1哈希的一部分作为密码

以上算法适用于服务器端和设备端。这样他们就不需要进行任何互动。因此,如果用户忘记了密码,他可以请求服务器。服务器运行上述算法并将生成的密码发送给用户电子邮件。在设备端,使用相同的alto生成相同的密码。因此,当用户输入它时,它匹配并且用户被授予访问权。

不知怎的,我对此不满意,因为我们使用相同的字符串来生成密码。因此,每当用户忘记密码并生成密码时,他将获得相同的密码,而不是密码生成器的工作方式。

所以我想在字符串中添加更多可变的字符串,但在服务器端和设备端都是相同的。其中一个选项是在字符串中使用日期,但如果服务器位于不同的时区设备,则服务器将生成不同的密码。

有没有更好的解决方案呢?请建议......

1 个答案:

答案 0 :(得分:1)

听起来您想要使用“基于哈希的消息身份验证代码”(HMAC)。这背后的想法是即使在纯文本连接中,用户的密码也不可见,因为用户名,密码和服务器生成的“会话密钥”用于生成在会话密钥改变时改变的散列。鉴于散列是单向的,不可能从通过网络连接发送的散列中导出用户的密码。

在阳光下没有什么新东西。