【发布时间】:2011-06-27 23:51:07
【问题描述】:
我想在我正在开发的 iPhone 应用程序中添加简单的密码保护。我可能会使用 crypt() 以 CoreData / sqlite 格式将密码存储在我的数据库中。
我想我对如何创建和存储密码已经很了解了,但是如果用户忘记了密码,我想添加一个密码恢复功能
这是我在 iOS 中苦苦挣扎的部分。我希望一切都是本地的,所以我想不出使用链接重置密码的方法。
我曾考虑通过电子邮件发送密码,但在 iOS 中,如果手持设备的人没有看到电子邮件的内容,就无法发送电子邮件。
我能想到的唯一方法是拥有一两个“备用密码”,这基本上是用户选择问题的答案(或者甚至可能只是将提醒问题与密码一起存储)。
这些都不是真的那么安全,虽然我的应用程序中受保护的数据不是那么重要,所以我不是在寻找最强大的解决方案(只是一个不太难实现的体面的解决方案,不是太难对用户来说很不方便,对黑客来说也不太难破解)。
非常感谢您的建议。
谢谢, 罗恩
【问题讨论】:
-
您将纯文本密码存储在哪里?为什么需要通过电子邮件发送?
-
我强烈建议不要使用安全问题。这些已被证明是不安全的。另外,如果您要保护数据,请不要忘记也对其进行加密(当然使用从用户密码派生的密钥),否则密码保护无效。它可能会给恢复密码的能力带来一些问题。
-
@Artium ...感谢您的提示!安全性对我的应用程序来说并不重要。它基本上是一个学习应用程序,不同的用户可以为彼此准备“测试”。我只是想确保学生作弊不是“超级容易”,所以我想要一个非常基本的密码保护方案。如果学生真的想作弊,有很多方法可以这样做......我只是想让他们更难一点。