iOS 開発では、通常 UserDefaults を使用してアプリの設定情報を保存しますが、機密情報を保存する必要がある場合は、Keychain を使用することが考えられます。開発時に注意する必要があるのは、UserDefaults の内容はアプリをアンインストールすると削除されますが、Keychain の内容は削除されないということです。Keychain に最初に内容を書き込む場合は、以前に完全に削除されていない内容が Keychain に含まれているかどうかを確認する必要があります。Keychain は、Apple の Mac OS のパスワード管理システムであり、iOS の登場後も iOS に導入され、ユーザーのパスワード管理の重要なツールとして使用されています。Keychain を使用することで、開発者は機密情報の暗号化と復号化のプロセスを省略し、システムに管理させることができます。
Keychain の使用方法も非常に簡単で、Apple は Keychain の操作をラップするための KeychainItemWrapper というユーティリティパッケージを提供しています。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];
Apple 公式の GenericKeychain の例: http://developer.apple.com/library/ios/#samplecode/GenericKeychain/
参考 URL: http://blog.csdn.net/tianyitianyi1/article/details/7643365 http://blog.k-res.net/archives/1081.html