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

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

在工程中加入SSKeyChain

  1. 在工程中加入Security.framework框架。
  2. 把SSKeychain.h和SSKeychain.m加到项目文件夹。

使用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的帮助文档需要以下步骤:

  1. 打开菜单 Xcode -> Preferences
  2. 选择 Downloads
  3. 选择 Documentation
  4. 点击底部的加号按钮,并输入以下URL: http://docs.samsoff.es/com.samsoffes.sskeychain.atom
  5. 点击”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 参数应该是一致的。

转载于:https://www.cnblogs.com/qyfeng009/p/5315964.html

介绍一个轻量级iOS安全框架:SSKeyChain相关推荐

  1. 为了支持AOP的编程模式,我为.NET Core写了一个轻量级的Interception框架[开源]

    ASP.NET Core具有一个以ServiceCollection和ServiceProvider为核心的依赖注入框架,虽然这只是一个很轻量级的框架,但是在大部分情况下能够满足我们的需要.不过我觉得 ...

  2. 一个轻量级分布式RPC框架--NettyRpc

    1.背景 最近在搜索Netty和Zookeeper方面的文章时,看到了这篇文章<轻量级分布式 RPC 框架>,作者用Zookeeper.Netty和Spring写了一个轻量级的分布式RPC ...

  3. hadoop 依赖式job_每天一学:一个轻量级分布式任务调度框架 XXL-JOB

    概述 XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速.学习简单.轻量级.易扩展.现已开放源代码并接入多家公司线上产品线,开箱即用. 官方地址中文版:http://www.xux ...

  4. 用 TypeScript 写一个轻量级的 UI 框架之十三:Grid 表格组件(下)

    脏数据处理 Grid 的多行数据,修改后要提交到后台.如果大批量的数据一次性提交到后台恐怕不大合理.如果只是修改过那行的数据才提交过去,是比较合理的方式.这些修改的数据,我们称为"脏数据(D ...

  5. iOS 第三方框架-Masonry介绍与使用实践

    前言 MagicNumber -> autoresizingMask -> autolayout 以下是纯手写代码所经历的关于页面布局的三个时期 在iphone1-iphone3gs时代 ...

  6. 直播 | 清华大学王晨阳:轻量级Top-K推荐框架及相关论文介绍

    「PW Live」是 PaperWeekly 的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和交流可能会让知识的传播更加有意义, ...

  7. java 轻量级 job_oxygen: 一个轻量级Java框架,包含ioc、aop、config、cache、job、Jdbc、web等...

    oxygen 轻量级Java框架 介绍 一个轻量级Java框架 oxygen-core 配置管理,支持${attrs.key:defaultValue}表达式获取配置 加解密管理,提供加解密服务内置基 ...

  8. 简单分享一个轻量级自动化测试框架目录结构设计

    更多关于python selenium的文章,请关注我的专栏:Python Selenium自动化测试详解 很多人在做自动化测试的过程中会遇到一个瓶颈,就是能够写脚本,但是不知道怎么去组织代码,怎么搭 ...

  9. 转载:::::简单分享一个轻量级自动化测试框架目录结构设计

    很多人在做自动化测试的过程中会遇到一个瓶颈,就是能够写脚本,但是不知道怎么去组织代码,怎么搭建测试框架,今天博主就放点干货,分享一个轻量级的自动化测试框架的目录结构,如下图: 分层如下: config ...

最新文章

  1. mysql group by取条数最多_mysql获取group by总记录行数的方法
  2. 随着“造车时代”的企业网络推广之下,富士康也想入圈造车?
  3. mysql执行查询出来的数据_F#连接到在线MySQL数据库执行查询
  4. 中学校园网建设实践与思考
  5. Cpp 对象模型探索 / 虚继承带虚函数的基类的子类的内存布局
  6. linux内核启动后门,Linux内核模块入门之简单内核后门
  7. java jsonobject.parse_JSON.parseObject的几种用法
  8. 移动端实现文字轮播_移动端轮播图实现
  9. python将txt文件转为excel格式以及写入excel超过65536行报错问题解决方法
  10. Java 并发编程AQS--源码解读
  11. 在Unity进行平台打包发布的时候需要注意的一些细节问题
  12. Amazon IoT Core 服务成本优化
  13. jquery图片懒加载函数
  14. CANoe操作介绍系列 ———— Analysi功能区中Graphic的介绍与使用
  15. ZYNQ图像处理|静态图像通路|VDMA寄存器、DDR内存操作
  16. ADIUM不能登录MSN
  17. Linux下刻录光盘
  18. libcef-简单介绍-快速链接-源代码发布
  19. 实验三 触发器、移位寄存器的设计和应用
  20. 50套html网站模板,涵盖很多行业,各种类型html网站,各种行业html网站模板下载

热门文章

  1. 为什么基于数字的技术公司进行机器人研究
  2. 联想Z5手机夺得京东销量第一,联想这是要翻盘的节奏吗?
  3. 夫妻两一个两年内3张卡9次逾期,一人4次,还能办理房贷吗?
  4. 求职OMG——大学生就业指导与技能
  5. 信号分析中一些特征量
  6. WinCE电源管理的简单介绍
  7. pandas 每一列相加_Python数据分析——Pandas 教程(上)
  8. java图书管理系统技术难度_Java图书管理系统练习程序(一)
  9. 团队行为心理学读书笔记(2)招聘背后的心理学
  10. Ubuntu中python调用SimpleITK来显示图像