iOS 开发时一般使用 UserDefaults 来存取 App 的配置信息,但是如果需要保存一些敏感信息的话,这时可以考虑使用 Keychain 来存取。开发时需要注意的是,App 卸载后 UserDefaults 的内容会被删除,而 Keychain 里面的则不会,如果首次将内容写入 Keychain,需要判断 Keychain 中是否包含之前没有删除干净的内容。 Keychain (钥匙串) 是苹果公司 Mac OS 中的密码管理系统,iOS 出现后也被引入到 iOS 中,作为用户密码管理的重要工具。使用 Keychain 对开发者来说,可以省略掉敏感信息的加密和解密的过程,交由系统管理。
Keychain 的用法也很简单,苹果提供了一段示例代码里面包含了 KeychainItemWrapper 这个对 Keychain 操作的包装工具包。使对 Keychain 的操作如同 NSDictionary 一样简单
KeychainItemWrapper *keychainItem = [[[KeychainItemWrapper alloc]
initWithIdentifier:@"Identifier"
accessGroup:@"cn.limc.app.boundle"]autorelease];
// 获取 keychain 中的内容
NSString *value = [keychainItem objectForKey];
// 写入内容到 keychain
NSString *valueToWrite = @"value to store";
[keychainItem setObject forKey];
苹果官方 GenericKeychain 示例: http://developer.apple.com/library/ios/#samplecode/GenericKeychain/
参考网址: http://blog.csdn.net/tianyitianyi1/article/details/7643365 http://blog.k-res.net/archives/1081.html