我怎样才能在iPhone应用程序中实现密码恢复?

我想在我正在开发的iPhone应用程序中添加简单的密码保护。 我可能会使用crypt()来存储我的数据库中的CoreData / sqlite格式的密码。

我想我对如何创build和存储密码有一个很好的理解,但万一用户忘记密码,我想添加一个密码恢复能力

这是我在iOS中挣扎的部分。 我希望一切都是本地的,所以我想不出一种方法来使用链接重置密码。

我曾想过发送密码的电子邮件,但在iOS中,没有持有该设备的人员看到电子邮件的内容,则无法发送电子邮件。

我能想到的唯一方法是拥有一个或两个“备份密码”,这个密码基本上是用户select问题的答案(或者甚至仅仅是存储提示问题和密码)。

虽然在我的应用程序中受到保护的数据并不那么重要,但这些都不是真正的安全,所以我不是在寻找最强大的解决scheme(只是一个体面的解决scheme,不是太难实施,不太麻烦用户,而不是太难以让黑客破解)。

build议非常感谢。

谢谢,罗恩

您可以使用创build帐户时设置的条件来提示重置密码,而不是恢复密码,例如母亲姓名,姓氏最后4等。这样,您不必担心解密密码或将其发送给用户。 一旦他们正确回答了足够的安全问题,就会提示他们重置密码。 您可以存储本地encryption的数据。 你永远不需要发送密码给用户。

最简单的方法可能是使“密码保护”可选,并显示警告(“如果您忘记了密码,您的数据可能无法恢复!”)。

这不会是那么安全:除非你自己encryption,否则数据可能会在电话备份中显示为未encryption。 结果是确定的用户可以要求你的帮助,你可以写一个工具,通过未encryption的备份挖掘并重置密码。

避免内置的crypt() ,这可能是基于DES的,并限制为8个ASCII字符。 将明文密码存储在钥匙串中并不是可怕的select。