您的位置:首页 > 移动开发 > IOS开发

介绍一个轻量级iOS安全框架:SSKeyChain

2017-07-21 12:23 477 查看

介绍一个轻量级iOS安全框架:SSKeyChain

SSKeyChains对苹果安全框架API进行了简单封装,支持对存储在钥匙串中密码、账户进行访问,包括读取、删除和设置。SSKeyChain的作者是大名鼎鼎的SSToolkit的作者samsoffes。

项目地址:https://github.com/samsoffes/sskeychain

1.在工程中加入SSKeyChain

在工程中加入Security.framework框架。

把SSKeychain.h和SSKeychain.m加到项目文件夹。

2.使用SSKeyChain

通过以下类方法来使用SSKeyChain(请查看SSKeyChain.h):

(NSArray *)allAccounts;

(NSArray )accountsForService:(NSString )serviceName;

(NSString )passwordForService:(NSString )serviceNameaccount:(NSString *)account;

(BOOL)deletePasswordForService:(NSString )serviceNameaccount:(NSString )account;

(BOOL)setPassword:(NSString )password forService:(NSString)serviceName account:(NSString *)account;

文档

在Xcode中安装SSKeyChain的帮助文档需要以下步骤:

打开菜单 Xcode -> Preferences

选择 Downloads

选择 Documentation

点击底部的加号按钮,并输入以下URL: http://docs.samsoff.es/com.samsoffes.sskeychain.atom

点击”SSKeyChain Documentation”旁边的install按钮。 (如果你看不到它,也没有提示任何错误,请重启Xcode)

确保在Organizer中可选的docset中能够看到SSKeychain。

此外,可以在线查看SSKeychain Documentation。

调试

如果无法保存钥匙串,请使用SSKeychain.h中提供的错误代码,例如:

NSError *error = nil; NSString *password = [SSKeychainpasswordForService:@"MyService" account:@"samsoffes"error:&error];  if ([error code] == SSKeychainErrorNotFound) {      NSLog(@"Passwordnot found"); }


显然,你对做这个应该很熟悉了。

访问钥匙串是件痛苦的事情,你要随时检查它的每个错误和失败。

SSKeychain并没有使它(钥匙串)变得更稳定,它仅仅是繁琐的C APIs封装。

示例代码

保存一个UUID字符串到钥匙串:

CFUUIDRef uuid = CFUUIDCreate(NULL); assert(uuid != NULL); CFStringRef uuidStr = CFUUIDCreateString(NULL, uuid); [SSKeychain setPassword: [NSString stringWithFormat:@"%@", uuidStr] forService:@"com.yourapp.yourcompany"account:@"user"];


然后,从钥匙串读取UUID:

NSString *retrieveuuid = [SSKeychainpasswordForService:@"com.yourapp.yourcompany"account:@"user"];

注意: setPassword和passwordForSevice方法中的services 和 accounts 参数应该是一致的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: