SSKeychain

简介:

SSKeychain

https://github.com/soffes/sskeychain

 

SSKeychain is a simple wrapper for accessing accounts, getting passwords, setting passwords, and deleting passwords using the system Keychain on Mac OS X and iOS.

SSKeychain是一个对keychain简易封装的开源库,用以存储用户信息,密码信息等.

 

Adding to Your Project

Simply add the following to your Podfile if you're using CocoaPods:

你可以用CocoaPods安装,在Podfile中写入下面一句话:

pod 'SSKeychain'

or Cartfile if you're using Carthage:

如果你是在使用Carthage,写入下面一句话:

github "soffes/SSKeychain"

To manually add to your project:

或者手动添加到项目当中:

  1. Add Security.framework to your target 添加Security.framework框架
  2. Add SSKeychain.hSSKeychain.mSSKeychainQuery.h, and SSKeychainQuery.m to your project. SSKeychain.hSSKeychain.mSSKeychainQuery.h, 与 SSKeychainQuery.m添加到你的项目当中.

SSKeychain requires ARC.

SSKeychain需要开启ARC.

Note: Currently SSKeychain does not support Mac OS 10.6.

注意:当前的SSKeychain并不支持Mac OS 10.6

 

Working with the Keychain

SSKeychain has the following class methods for working with the system keychain:

SSKeychain有以下的一些方法供你使用:

+ (NSArray *)allAccounts;
+ (NSArray *)accountsForService:(NSString *)serviceName;
+ (NSString *)passwordForService:(NSString *)serviceName account:(NSString *)account; + (BOOL)deletePasswordForService:(NSString *)serviceName account:(NSString *)account; + (BOOL)setPassword:(NSString *)password forService:(NSString *)serviceName account:(NSString *)account;

Easy as that. (See SSKeychain.h and SSKeychainQuery.h for all of the methods.)

是不是很简单.(你可以在 SSKeychain.h 与 SSKeychainQuery.h 中看到所有相关方法)

 

Documentation

Read the online documentation.

你可以阅读在线文档

 

Debugging

If your saving to the keychain fails, use the NSError object to handle it. You can invoke [error code]to get the numeric error code. A few values are defined in SSKeychain.h, and the rest in SecBase.h.

如果你存储keychain操作失败,请使用NSError来捕获他.

NSError *error = nil;
SSKeychainQuery *query = [[SSKeychainQuery alloc] init];
query.service = @"MyService"; query.account = @"soffes"; [query fetch:&error]; if ([error code] == errSecItemNotFound) { NSLog(@"Password not found"); } else if (error != nil) { NSLog(@"Some other error occurred: %@", [error localizedDescription]); }

Obviously, you should do something more sophisticated. You can just call [error localizedDescription] if all you need is the error message.

 

Disclaimer

Working with the keychain is pretty sucky. You should really check for errors and failures. This library doesn't make it any more stable, it just wraps up all of the annoying C APIs.

 

Thanks

This was originally inspired by EMKeychain and SDKeychain (both of which are now gone). Thanks to the authors. SSKeychain has since switched to a simpler implementation that was abstracted fromSSToolkit.

A huge thanks to Caleb Davenport for leading the way on version 1.0 of SSKeychain.

目录
相关文章
|
存储 SQL 算法
PostgreSQL 14中TOAST的新压缩算法LZ4,它有多快?
PostgreSQL 14中TOAST的新压缩算法LZ4,它有多快?
340 0
|
XML Android开发 数据格式
androidQ(10.0) 读取蓝牙设备当前电量并显示
androidQ(10.0) 读取蓝牙设备当前电量并显示
376 0
|
设计模式 缓存 Java
【Java|多线程与高并发】线程池详解
Java线程池是一种用于管理和重用线程的机制,它可以在需要执行任务时,从线程池中获取线程,执行任务,然后将线程放回池中,以便后续使用。线程池可以有效地管理线程的数量,提高程序的性能和资源利用率。
【Java|多线程与高并发】线程池详解
|
机器学习/深度学习 编解码 人工智能
深度解读智能化编码的技术架构与实践案例
LiveVideoStackCon2023上海站,阿里云视频云专场系列演讲-2
463 0
|
XML 数据可视化 jenkins
干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测
干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测
350 0
|
Linux 测试技术 Python
软件测试|pip安装第三方库报代理错误,怎么解决
软件测试|pip安装第三方库报代理错误,怎么解决
|
人工智能 自然语言处理 安全
AIGC - 生产力新工具 Bito AI
AIGC - 生产力新工具 Bito AI
607 0
|
消息中间件 Ubuntu JavaScript
Java 运行包精简探索(GraalVM)
Java 运行包精简探索(GraalVM)
|
vr&ar UED
AIPL模型|从分群到策略
AIPL模型主要用于对用户进行人群资产的量化,在分析用户的过程中,我们通常会用新用户和老用户进行划分。换一个角度我们也可以将用户划分成认知(Awareness)、兴趣(Interest)、购买(Purchase)、忠诚(Loyalty)类人群。每个人群内的用户,在产生了某种特殊行为之后就会转变他的人群属性。
AIPL模型|从分群到策略