1京郑、KeyChain是什么礼搁?
KeyChain的作用:可將用戶信息加密存儲在鑰匙串中宙搬,保證用戶信息的安全性笨腥;另外多個應(yīng)用可通過keyChain共享用戶信息。
2勇垛、如何使用KeyChain脖母?
1、蘋果官方封裝好了一個簡單的工具(我們需要導(dǎo)入Security.framework )闲孤,用于存取谆级、刪除keyChain的數(shù)據(jù)。
直接到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;
這個方法中:如果你想要在應(yīng)用之間共享信息,那么你需要指定訪問組(keychain access group)勤众。有同樣的訪問組的應(yīng)用才能夠訪問同樣的keychain信息
- (void)setObject:(id)inObject forKey:(id)key;
- (id)objectForKey:(id)key;
這兩個方法舆绎,看名字就應(yīng)該知道怎么用了
只是,key不是隨便傳的们颜,
(id)kSecAttrAccount:保存賬號吕朵, (id)kSecValueData:保存密碼
2、利用第三方框架使用Keychain
推薦這個框架:SAMKeychain掌桩,星星較多边锁,使用比較方便。
3波岛、KeyChain-應(yīng)用間共享數(shù)據(jù)
1茅坛、注意點:
1、相同的bundle id:相同bundle解釋就是:比如這里有兩個應(yīng)用程序: A應(yīng)用程序使用的provision對應(yīng)的 bundle id是 com.jaybin.keychain1,B應(yīng)用程序使用的provision對應(yīng)的 bundle id是 com.jaybin.keychain2 贡蓖。那么這兩個應(yīng)用程序就可以共享keychain數(shù)據(jù)曹鸠。
2、打開Keychain Sharing權(quán)限
如圖打開Keychain Sharing開關(guān)斥铺,設(shè)置好正確的 Keychain Group,設(shè)置好后應(yīng)該會生成一個文件彻桃,如下圖
plist.png
關(guān)于應(yīng)用間共享數(shù)據(jù)的內(nèi)容,我是參考其他文章晾蜘,這一篇講解的不錯:http://blog.csdn.net/he_jiabin/article/details/43764637