我想在我正在处理的iPhone App中添加简单的密码保护。我可能会使用crypt()将密码存储在我的数据库中,该数据库采用CoreData / sqlite格式。
我认为我对如何创建和存储密码非常了解,但是如果用户忘记了密码,我想添加密码恢复功能
这是我在iOS中苦苦挣扎的部分。我希望一切都是本地的,所以我想不出一种方法来使用链接来重置密码。
我曾考虑过通过电子邮件发送密码,但在iOS中,如果没有持有设备的人看到电子邮件的内容,就无法发送电子邮件。
我能想到的唯一方法是拥有一个或两个“备份密码”,这基本上是用户选择问题的答案(或者甚至只是存储提醒问题和密码)。
这些都不是那么安全,虽然我的应用程序中受保护的数据并不那么重要,所以我不是在寻找最强大的解决方案(只是一个不太难实现的体面解决方案,也不是对用户来说不方便,黑客也不会太难打破。
非常感谢您的建议。
谢谢, 罗恩
答案 0 :(得分:5)
您可以使用最初创建帐户时设置的条件(例如母亲的婚前姓名,姓氏等)等提示重置密码,而不是恢复密码。这样,您就不需要了担心解密密码或将密码发送给用户。一旦他们正确回答了足够的安全问题,系统会提示他们重置密码。您可以在本地加密存储此数据。您永远不需要向用户发送密码。
答案 1 :(得分:1)
最简单的方法可能是选择“密码保护”并显示警告(“如果忘记了密码,您的数据可能无法恢复!”)。
它不会那么安全:数据可能在手机备份中显示为未加密,除非您自己加密。结果是确定的用户可以向您寻求帮助,您可以为他们编写一个挖掘未加密备份并重置密码的工具。
避免内置crypt()
,它可能基于DES并且限制为8个ASCII字符。将明文密码存储在钥匙串中并不是太多可怕的选项。