#1、KeyChain是什麼?
KeyChain的作用:可將使用者資訊加密儲存在鑰匙串中,保證使用者資訊的安全性;另外多個應用可通過keyChain共享使用者資訊。
#2、如何使用KeyChain?
1、蘋果官方封裝好了一個簡單的工具(我們需要匯入Security.framework ),用於存取、刪除keyChain的資料。 直接到github上搜尋 “KeychainItemWrapper”,找到星星較多的一個就行。例如:KeychainItemWrapper
KeychainItemWrapper的介面如下:
@interface KeychainItemWrapper : NSObject
{
NSMutableDictionary *keychainItemData; // The actual keychain item data backing store.
NSMutableDictionary *genericPasswordQuery; // A placeholder for the generic keychain item query used to locate the item.
NSString* _identifier;
}
@property (nonatomic, strong) NSMutableDictionary *keychainItemData;
@property (nonatomic, strong) NSMutableDictionary *genericPasswordQuery;
// Designated initializer.
- (id)initWithIdentifier: (NSString *)identifier accessGroup:(NSString *) accessGroup;
- (void)setObject:(id)inObject forKey:(id)key;
- (id)objectForKey:(id)key;
// Initializes and resets the default generic keychain item data.
- (void)resetKeychainItem;
@end
複製程式碼
- | - (id)initWithIdentifier: (NSString *)identifier accessGroup:(NSString *) accessGroup;
這個方法中:如果你想要在應用之間共享資訊,那麼你需要指定訪問組(keychain access group)。有同樣的訪問組的應用才能夠訪問同樣的keychain資訊
- (void)setObject:(id)inObject forKey:(id)key;
- (id)objectForKey:(id)key;
複製程式碼
這兩個方法,看名字就應該知道怎麼用了 只是,key不是隨便傳的, (id)kSecAttrAccount:儲存賬號, (id)kSecValueData:儲存密碼
2、利用第三方框架使用Keychain 推薦這個框架:SAMKeychain,星星較多,使用比較方便。
#3、KeyChain-應用間共享資料 ##1、注意點:
如圖開啟Keychain Sharing開關,設定好正確的 Keychain Group,設定好後應該會生成一個檔案,如下圖1、相同的bundle id:相同bundle解釋就是:比如這裡有兩個應用程式: A應用程式使用的provision對應的 bundle id是 com.jaybin.keychain1,B應用程式使用的provision對應的 bundle id是 com.jaybin.keychain2 。那麼這兩個應用程式就可以共享keychain資料。 2、開啟Keychain Sharing許可權
關於應用間共享資料的內容,我是參考其他文章,這一篇講解的不錯:http://blog.csdn.net/he_jiabin/article/details/43764637