我是objective C
的新手,我创建了一个应用程序,因为我使用了NSUserDefault
和Keychain
来存储我的用户名和密码。但我无法区分两者。请帮助区分两者。
谢谢。
答案 0 :(得分:13)
钥匙串是一个加密容器,用于存放多个应用程序和安全服务的密码。 Apple Inc.在Mac OS和iOS中使用钥匙串作为密码管理系统。
NSUserDefaults 提供基于用户首选项自定义应用程序行为的方法。属于Cocoa和Cocoa Touch的Foundation框架。
的标记信息获得此信息的答案 1 :(得分:8)
增加: 当我们保存userName和Password时。并从设备中删除应用程序。
在钥匙串中:用户名和密码仍在那里。
在NSUserDefaults中:用户名和密码也会从您的应用中删除设备。
答案 2 :(得分:6)
尽量避免在本地保存数据。
<强> Keychain 强> - 钥匙扣是安全的加密方式,以保存小型存储数据,如用户名,密码等。 当心密钥链数据可以从越狱设备访问。 您可以从here获取Apple示例代码。
<强> Keychain Sharing - 强> 通过启用钥匙串共享,您的应用可以与您的团队开发的其他应用共享钥匙串中的密码。 假设我们创建了两个用户可以登录同一帐户的应用程序。能够在这些应用程序之间共享登录信息会很高兴。这样,用户只需在其中一个应用程序中登录一次。
<强> UserDefaults 强> 用户默认数据库的接口,您可以在给定设备上的应用程序调用中持久存储键值对。 UserDefaults不是保存私有数据的安全方法。 UserDefaults在本地存储为plist, 任何人都可以在 ./ Library / Preferences / com.mycompany.MyAppName.plist
中进行追踪