iOS的目标c:在本地存储密码的位置

时间:2012-06-07 01:06:20

标签: objective-c bundle nsuserdefaults store documents

我正在创建一个应用程序,要求用户在使用该应用程序之前输入一个图钉。我的问题是:存储此类数据的确切位置(因此可以检查它是否正确),NSUserDefaults ?,捆绑文件?,应用程序文档文件夹?

3 个答案:

答案 0 :(得分:5)

您绝对应该将敏感数据存储在钥匙串中。 NSUserDefaults将其数据存储在纯文本文件中,任何人都可以通过访问文件系统来阅读。

有一些开源类可以简化Keychain API的使用,你一定要查看它们:

SFHFKeychain访问:

SFHFKeychain

答案 1 :(得分:2)

您应该使用keychain services,它会将数据保存在设备的加密钥匙串中。

API可能很难使用,但请查看SFHFKeychainUtils,这是一个易于使用的Objective-C包装器。

答案 2 :(得分:1)

我可能会使用NSUserDefaults,但这取决于您的使用案例。你用它做什么用的?是否必须定期访问/更新?您是否考虑过存储PIN码的哈希值而不仅仅是PIN码?数据有多大?

如果这是一个非常简单的4位密码,每次应用程序启动时您只能访问一次,可能NSUserDefaults是最佳选择。它也很快实现。只要确保你知道自己在做什么,并在需要时加密它。