objective-c - 重置密码算法

标签 objective-c algorithm security passwords reset

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

我正在计划这样的事情:

  1. 用户联系我说他们忘记了密码
  2. 我通过电子邮件向他们发送代码或代码序列以输入密码屏幕
  3. 应用程序根据一些 secret 算法生成一个数字,用户将其发送给我
  4. 我向他们发送了另一个代码(由匹配算法生成),他们输入该代码以删除密码

我认为这将使我能够只允许用户重置密码,前提是他们已经与我联系并且我已经验证了他们是谁。这也应该可以防止用户使用此代码解锁另一部装有相同应用程序的手机。

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

如有任何帮助或建议,我们将不胜感激。

最佳答案

您应该能够结合使用散列和 RSA 来解决这个问题。

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

第二步:发送一个随机码C,并用私钥K1对C进行加密。应用程序解密加密并检查它是否与用户输入的代码 C 相匹配

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

第四步:您用您的私钥解密新密码并将其发送给用户

关于objective-c - 重置密码算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9469394/

相关文章:

algorithm - 用于存储由唯一的 8 位十六进制标识的对象的数据结构,用于快速插入和查找

amazon-web-services - 有没有办法防止 kubectl 注销 kubernetes 节点?

javascript - 我是否应该允许包含脚本标签(来自 WordPress 数据库)的内容动态插入到我的应用程序中的 html 中?

objective-c - cocoa 将 CIImage 保存为 bmp 文件图像损坏

c++ - C++ 中 objective-c NSString * 的最佳等价物是什么?

objective-c - iPhone 中的网页 View

algorithm - 从总和等于 S 的范围中选择 K 个唯一随机数

algorithm - 感知图像下采样

security - 如何以安全的方式记住使用 cookie 的用户?

ios - 为什么弱强舞会保持循环?