我想为那些忘记密码(实际上是4位密码)的用户实现某种密码重置功能,这对于我正在编写的iPhone应用程序,但我不想让任何一个用户只需禁用它。我正在考虑进行某种验证,并想知道这种事情的最佳实践。
我正在计划这样的事情:
我认为这将使我只允许用户重置密码,只有他们与我联系并且我已验证他们是谁。这也应该阻止用户使用此代码解锁另一部带有相同应用程序的手机。
这看起来是个好主意吗?是否有任何合适的哈希算法/库来生成这种两步验证码(最好是目标C)?对这种事情有没有更好的方法?
非常感谢任何帮助或建议。
答案 0 :(得分:1)
您应该能够使用散列和RSA的组合来解决此问题。
假设您有一个私钥(K1),公钥(K2)随应用程序一起分发。
步骤2:使用私钥K1发送随机码C和C的加密。该应用程序解密加密并检查它是否与用户输入的代码C
匹配步骤3:该应用程序创建一个随机的4位数代码(新密码P),使用公钥对其进行加密并将其发送给您(或者可能将其发送给发送给您的用户)
步骤4:使用私钥解密新密码并将其发送给用户