我需要在整个应用程序中保持我的登录凭据,因此我有三个选项来维护我的登录凭据...
1 key chain
2 NSUserDefaults
3 plist
哪一个是最好的选择?还有其他存储登录凭据的方法吗?
谢谢提前
我需要在整个应用程序中保持我的登录凭据,因此我有三个选项来维护我的登录凭据...
1 key chain
2 NSUserDefaults
3 plist
哪一个是最好的选择?还有其他存储登录凭据的方法吗?
谢谢提前
鉴于它提供的安全功能,我建议使用钥匙串来存储登录凭据。
iOS上的钥匙串服务提供了一种安全地存储密码、密钥、证书等内容的方法。
像密码和密钥这样的敏感数据应该存储在钥匙串中。苹果的钥匙串服务编程指南说:
"钥匙串是一个加密容器,可以保存多个应用程序和安全服务的密码。钥匙串是安全存储容器,这意味着当钥匙串被锁定时,没有人可以访问其受保护的内容。"
这里有两篇不错的教程。
这个链接旨在使使用Mac OSX和iOS钥匙串像NSUserDefaults一样容易。
它是Mac OSX和iOS钥匙串的KVO兼容Cocoa包装器,该包装器的模型是NSUserDefaults,因此意图是对于通常需要调用的常见情况:
[NSUserDefaultsController sharedUserDefaultsController]
你应该能够调用
[PDKeychainBindingsController sharedKeychainBindingsController]
对于通常需要调用的常见情况:
[NSUserDefaults standardUserDefaults]
你应该能够调用
[PDKeychainBindings sharedKeychainBindings]
这些实现之间有一些差异。首先,这个类只对字符串有效,因为这是Keychain接受的,所以那些接受非字符串对象(如数组、字典等)的方法已从该类中省略。其次,目前只实现了“立即模式”,因此您不能设置一堆值,然后调用“保存”来执行一次写入,也没有“恢复到保存的值”的功能。