我正在创建一个应用程序,要求用户在使用该应用程序之前输入一个图钉。我的问题是:存储此类数据的确切位置(因此可以检查它是否正确),NSUserDefaults ?,捆绑文件?,应用程序文档文件夹?
答案 0 :(得分:5)
您绝对应该将敏感数据存储在钥匙串中。 NSUserDefaults将其数据存储在纯文本文件中,任何人都可以通过访问文件系统来阅读。
有一些开源类可以简化Keychain API的使用,你一定要查看它们:
SFHFKeychain访问:
答案 1 :(得分:2)
您应该使用keychain services,它会将数据保存在设备的加密钥匙串中。
API可能很难使用,但请查看SFHFKeychainUtils,这是一个易于使用的Objective-C包装器。
答案 2 :(得分:1)
我可能会使用NSUserDefaults,但这取决于您的使用案例。你用它做什么用的?是否必须定期访问/更新?您是否考虑过存储PIN码的哈希值而不仅仅是PIN码?数据有多大?
如果这是一个非常简单的4位密码,每次应用程序启动时您只能访问一次,可能NSUserDefaults是最佳选择。它也很快实现。只要确保你知道自己在做什么,并在需要时加密它。