在测试我们的应用程序期间,观察到如果用户忘记密码,则无法进入应用程序。
发现这一点后,我们实施了如下密码生成技术 1. 使用用户信息创建特定字符串。2. 对字符串应用 SHA1 3. 将 SHA1 哈希的一部分作为密码
上述算法适用于服务器端和设备端。这样他们就不需要有任何交互了。所以如果用户忘记了他的密码,他可以请求服务器。服务器运行上述算法并将生成的密码发送到用户电子邮件。在设备端,使用相同的中音生成相同的密码。因此,当用户输入它时,它匹配并且用户被授予访问权限。
不知何故,我对此并不满意,因为我们使用相同的字符串来生成密码。因此,每次用户忘记密码并生成密码时,他都会得到相同的密码,这不是密码生成器的工作方式。
所以我正在考虑向字符串添加更多内容,这些内容将是可变的,但在服务器端和设备端都是相同的。其中一个选项是使用字符串中的日期,但如果服务器位于不同的时区,设备和服务器将生成不同的密码。
有没有更好的解决方案?请建议...