Keychain和NSUserDefault之间的区别?

时间:2012-08-23 11:03:03

标签: ios objective-c swift nsuserdefaults keychain

我是objective C的新手,我创建了一个应用程序,因为我使用了NSUserDefaultKeychain来存储我的用户名和密码。但我无法区分两者。请帮助区分两者。

谢谢。

3 个答案:

答案 0 :(得分:13)

钥匙串是一个加密容器,用于存放多个应用程序和安全服务的密码。 Apple Inc.在Mac OS和iOS中使用钥匙串作为密码管理系统。

NSUserDefaults 提供基于用户首选项自定义应用程序行为的方法。属于Cocoa和Cocoa Touch的Foundation框架。

我是通过NSUserdefaultskeychain

的标记信息获得此信息的

答案 1 :(得分:8)

增加:  当我们保存userName和Password时。并从设备中删除应用程序。

在钥匙串中:用户名和密码仍在那里。

在NSUserDefaults中:用户名和密码也会从您的应用中删除设备。

答案 2 :(得分:6)

尽量避免在本地保存数据。

<强> Keychain - 钥匙扣是安全的加密方式,以保存小型存储数据,如用户名,密码等。 当心密钥链数据可以从越狱设备访问。 您可以从here获取Apple示例代码。

<强> Keychain Sharing - 通过启用钥匙串共享,您的应用可以与您的团队开发的其他应用共享钥匙串中的密码。 假设我们创建了两个用户可以登录同一帐户的应用程序。能够在这些应用程序之间共享登录信息会很高兴。这样,用户只需在其中一个应用程序中登录一次。

<强> UserDefaults 用户默认数据库的接口,您可以在给定设备上的应用程序调用中持久存储键值对。 UserDefaults不是保存私有数据的安全方法。 UserDefaults在本地存储为plist, 任何人都可以在 ./ Library / Preferences / com.mycompany.MyAppName.plist

中进行追踪