重置密码算法

时间:2012-02-27 17:30:42

标签: objective-c algorithm security passwords reset

我想为那些忘记密码(实际上是4位密码)的用户实现某种密码重置功能,这对于我正在编写的iPhone应用程序,但我不想让任何一个用户只需禁用它。我正在考虑进行某种验证,并想知道这种事情的最佳实践。

我正在计划这样的事情:

  1. 用户与我联系,说他们忘记了密码
  2. 我通过电子邮件向他们发送代码或代码序列以进入密码屏幕
  3. 应用程序根据某种秘密算法生成一个号码,用户将该号码发送给我
  4. 我发送了他们输入的另一个代码(由匹配算法生成)以删除密码
  5. 我认为这将使我只允许用户重置密码,只有他们与我联系并且我已验证他们是谁。这也应该阻止用户使用此代码解锁另一部带有相同应用程序的手机。

    这看起来是个好主意吗?是否有任何合适的哈希算法/库来生成这种两步验证码(最好是目标C)?对这种事情有没有更好的方法?

    非常感谢任何帮助或建议。

1 个答案:

答案 0 :(得分:1)

您应该能够使用散列和RSA的组合来解决此问题。

假设您有一个私钥(K1),公钥(K2)随应用程序一起分发。

步骤2:使用私钥K1发送随机码C和C的加密。该应用程序解密加密并检查它是否与用户输入的代码C

匹配

步骤3:该应用程序创建一个随机的4位数代码(新密码P),使用公钥对其进行加密并将其发送给您(或者可能将其发送给发送给您的用户)

步骤4:使用私钥解密新密码并将其发送给用户