Objective c iOS的目标c:本地存储pin码的位置

Objective c iOS的目标c:本地存储pin码的位置,objective-c,bundle,nsuserdefaults,store,documents,Objective C,Bundle,Nsuserdefaults,Store,Documents,我正在制作一个应用程序,要求用户在使用该应用程序之前输入pin。我的问题是:存储此类数据(以便检查其是否正确)、NSUserDefaults?、捆绑文件?、apps documents folder?我可能会选择NSUserDefaults,但这取决于您的用例。你用这个干什么?是否必须定期访问/更新?您是否考虑过存储PIN码的散列而不仅仅是PIN码?数据有多大 如果这是一个非常简单的4位pin码,每次应用启动时您只能访问一次,那么NSUserDefaults可能是最好的选择。实施起来也很快。只要

我正在制作一个应用程序,要求用户在使用该应用程序之前输入pin。我的问题是:存储此类数据(以便检查其是否正确)、NSUserDefaults?、捆绑文件?、apps documents folder?

我可能会选择NSUserDefaults,但这取决于您的用例。你用这个干什么?是否必须定期访问/更新?您是否考虑过存储PIN码的散列而不仅仅是PIN码?数据有多大


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

您肯定应该在密钥链中存储敏感数据。NSUserDefaults将其数据存储在一个纯文本文件中,任何人都可以通过访问文件系统读取该文件

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

SFHFKeychain访问:

您应该使用,它将数据保存在设备的加密密钥链中


API可能很难使用,但请注意,它是一个Objective-C包装器,易于使用。

PIN只有四位数长,只有在应用程序启动时才会检查。我以前使用过NSUserDefaults是的,但不确定如何做加密部分?嗯,我看过了,看起来很简单。所以这个SFHFKeychainUtils框架,是被苹果接受的。据我所知,苹果拒绝了许多应用程序,因为它们使用了未经证明的Apisys。我在app Store中有一个应用程序使用它。很酷,我尝试过使用它,但因为我的应用程序使用ARC,所以代码出现了一些问题。此SFHFKeychainUtils没有更新版本。我发现了一个支持ARC和非ARC模式的类似框架:对于任何可能需要这个正确答案的人,先生,你先回答。谢谢