适用于 iOS 的目标 C:在本地存储 PIN 码的位置



我正在制作一个应用程序,要求用户输入引脚,然后才能使用该应用程序。我的问题是:存储此类数据究竟适合在哪里(以便可以检查其是否正确),NSUserDefaults?,捆绑文件?,应用程序文档文件夹?

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

有一些开源类可以简化钥匙串API的使用,您绝对应该检查一下:

SFHFKeychain访问:

SFHFKeychain

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

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

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

如果这是一个非常简单的 4 位 PIN 码,每次应用程序启动时您只访问一次,也许 NSUserDefaults 是最佳选择。实施起来也非常快。只要确保您知道自己在做什么,并在需要时对其进行加密即可。

最新更新