配置環(huán)境:
pod 'SSKeychain'
SSKeyChain主要的api
// 保存對應(yīng)賬戶密碼
+ (BOOL)setPassword:(NSString *)password forService:(NSString *)serviceName account:(NSString *)account;
// 提取對應(yīng)賬戶密碼
+ (NSString *)passwordForService:(NSString *)serviceName account:(NSString *)account;
// 刪除對應(yīng)賬戶密碼
+ (BOOL)deletePasswordForService:(NSString *)serviceName account:(NSString *)account;
// 獲取APP下所有賬戶
+ (NSArray *)accountsForService:(NSString *)serviceName;
//如果存儲的密碼是NSData
+ (NSData *)passwordDataForService:(NSString *)serviceName account:(NSString *)account;
+ (BOOL)setPasswordData:(NSData *)password forService:(NSString *)serviceName account:(NSString *)account;
SSKeyChain參數(shù)說明:
SSKeyChain的方法中涉及到的變量主要有三個(gè), password誓斥、service让歼、account磨确。password蛆楞、account分別保存的是密碼和用戶名信息。 service保存的是服務(wù)的類型敛熬,就是用戶名和密碼是為什么應(yīng)用保存的一個(gè)標(biāo)志垛膝。比如一個(gè)用戶 可以再不同的論壇中使用相同的用戶名和密碼,那么service保存的信息分別標(biāo)識不同的論壇丁稀。由于包名通常具有一定的唯一性吼拥,通常在程序中可以用包的名稱來作為service的標(biāo)識。
SSKeyChain和NSUserDefaults的比較
- NSUserDefaults數(shù)據(jù)以明文的形式保存在,而且存儲的數(shù)據(jù)會隨著APP卸載而刪掉
- SSKeyChain是將數(shù)據(jù)加密后存儲在本地,更安全,SSKeyChain存儲的數(shù)據(jù)不會刪除
示例:
code:
//說明:account线衫、service凿可、password分別為賬戶、服務(wù)名授账、密碼枯跑,
[SSKeychain setPassword:@"123456" forService:@"pwd" account:@"xm"];
NSLog(@"xm 的 信息%@",[SSKeychain passwordForService:@"pwd" account:@"xm"]);
if ([SSKeychain deletePasswordForService:@"pwd" account:@"xm"]) {
NSLog(@"刪除成功");
NSLog(@"xm 的 信息%@",[SSKeychain passwordForService:@"pwd" account:@"xm"]);
}else
{
NSLog(@"刪除失敗");
NSLog(@"xm 的 信息%@",[SSKeychain passwordForService:@"pwd" account:@"xm"]);
}