zoukankan      html  css  js  c++  java
  • 介绍一个轻量级iOS安全框架:SSKeyChain

    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 参数应该是一致的。

  • 相关阅读:
    现代软件工程 第一章 概论 第3题——韩婧
    现代软件工程 第一章 概论 第2题——韩婧
    小组成员邓琨、白文俊、张星星、韩婧
    UVa 10892 LCM的个数 (GCD和LCM 质因数分解)
    UVa 10780 幂和阶乘 求n!中某个因子的个数
    UVa 11859 除法游戏(Nim游戏,质因子)
    Codeforces 703C Chris and Road 二分、思考
    Codeforces 703D Mishka and Interesting sum 树状数组
    hdu 5795 A Simple Nim SG函数(多校)
    hdu 5793 A Boring Question 推公式(多校)
  • 原文地址:https://www.cnblogs.com/qyfeng009/p/5315964.html
Copyright © 2011-2022 走看看