11

我需要在整个应用程序中维护我的登录凭据,因此,我有 3 个选项来维护我的登录凭据...

1 key chain
2 NSUserDefaults
3 plist

哪一个是最好的选择?还有其他方法可以存储登录凭据吗?

提前致谢

4

2 回答 2

20

由于它提供的安全功能,我建议使用钥匙串来存储登录凭据。iOS 上的钥匙串服务提供了一种安全存储密码、密钥、证书等内容的方法。

密码和密钥等敏感数据应存储在钥匙串中。Apple 的钥匙串服务编程指南指出

“钥匙串是一个加密的容器,其中包含多个应用程序和安全服务的密码。钥匙串是安全存储容器,这意味着当钥匙串被锁定时,没有人可以访问其受保护的内容”。

这里有两个很好的教程给你。

  1. 如何不在 iOS 中存储密码
  2. 使用钥匙串存储用户名和密码
  3. 如何保护用户数据
于 2012-11-20T04:00:23.013 回答
0

链接旨在使使用 Mac OSX 和 iOS 钥匙串像 NSUserDefaults 一样简单。

它是一个围绕 Mac OSX 和 iOS 钥匙串的 KVO 兼容 Cocoa 包装器,这个包装器的模型是 NSUserDefaults,因此目的是对于您通常想要调用的常见情况:

[NSUserDefaultsController sharedUserDefaultsController]

你应该可以打电话

[PDKeychainBindingsController sharedKeychainBindingsController]

对于您通常会调用的常见情况:

[NSUserDefaults standardUserDefaults]

你应该可以打电话

[PDKeychainBindings sharedKeychainBindings]

实现之间存在一些差异。首先,这个类只对字符串有效,因为这是 Keychain 接受的,所以类中省略了接受非字符串对象(如数组和字典等)的方法。其次,现在只实现了“立即模式”,所以你不能设置一堆值然后调用“保存”只做一次写入,并且没有“恢复到保存的值”功能)。

于 2014-02-18T05:52:28.787 回答