為什么使用Keychain存儲(chǔ)用戶敏感信息 :
iOS的keychain服務(wù)提供了一種安全的保存私密信息(密碼辱揭,序列號(hào)锭碳,證書等)的方式竟闪,每個(gè)ios程序都有一個(gè)獨(dú)立的keychain存儲(chǔ)摊溶。相對(duì)于NSUserDefaults谐岁、文件保存等一般方式,keychain保存更為安全幢竹,而且keychain里保存的信息不會(huì)因App被刪除而丟失耳峦,所以在重裝App后,keychain里的數(shù)據(jù)還能使用焕毫。從ios 3.0開始蹲坷,跨程序分享keychain變得可行。
如何在應(yīng)用里使用keyChain邑飒?
先看看SFHFKeychainUtils提供的接口
//獲得保存在鑰匙串里的賬號(hào)和密碼
/*** 這里的 Service參數(shù)就是你的appid ***/
+ (NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error;
//保存賬號(hào)密碼
+ (BOOL) storeUsername: (NSString *) username andPassword: (NSString *) password forServiceName: (NSString *) serviceName updateExisting: (BOOL) updateExisting error: (NSError **) error;
//刪除賬號(hào)密碼
+ (BOOL) deleteItemForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error;
第一步:在pod里導(dǎo)入SFHFKeychainUtils:
pod 'SFHFKeychainUtils'
第二步:引入頭文件循签,保存賬號(hào)密碼
//引入頭文件
#import "SFHFKeychainUtils.h"
//刪除用戶
[SFHFKeychainUtils deleteItemForUsername:userName andServiceName:ServiceName error:nil];
//存儲(chǔ)賬戶密碼
[SFHFKeychainUtils storeUsername:userName andPassword:passwordNew forServiceName:ServiceName updateExisting:YES error:nil];
//根據(jù)用戶名取出密碼
NSString *passWord = [SFHFKeychainUtils getPasswordForUsername:userName andServiceName:ServiceName error:nil];