使用轻量开源框架SSKeychain储存密码到keychain中

本文介绍了如何利用轻量级开源框架SSKeychain简化在iOS应用中存储密码到Keychain的过程,避免直接使用Apple提供的复杂API。通过引入SSKeychain库,可以便捷地进行密码储存操作,只需导入相关文件并链接security.framework即可开始使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用SSKeychain将密码储存密码至keychain的方法

Apple本身是提供关于kaychain储存的API的,但是使用方法较为繁杂,需要自己构建字典之类的,而我们的需求功能可能很简单,只是存个密码之类的,这时候就可以使用开源的SSKeychain,github地址https://github.com/samsoffes/sskeychain。SSKeychain是fork自SAMKeychain,是MIT的license,这也是一个很好的密码储存框架,只支持ARC编译。

具体使用

使用只需要导入sskeychain.h和sskeychain.m至工程,并加入系统的security.framework框架,然后就可以用啦。用法其实readme文件中写的挺详细。常用的几个函数如下。

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

具体应用测试如下

- (void)checkSSKeychain
{
    NSString *bundleID = [[NSBundle mainBundle] bundleIdentifier];//获得本应用的bundle ID
    NSLog(@"bundle id = %@", bundleID);
    NSError *error = nil;
    [SSKeychain passwordForService: bundleID account: @"youraccount" error: &error];
    if([error code] == SSKeychainErrorNotFound){
        NSLog(@"无密码");
        [SSKeychain setAccessibilityType:kSecAttrAccessibleWhenUnlockedThisDeviceOnly];//设置该密码的权限只有在手机解锁、此台设备才可获得。
        [SSKeychain setPassword:@"yourkey" forService:bundleID account:@"youraccount"];
    }
    else {
        NSLog(@"密码是 %@", [SSKeychain passwordForService: bundleID account: @"youraccount"]);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值