SSKeyChain保存密码的N姿势

作者: Sean_Shi | 来源:发表于2016-06-17 10:20 被阅读641次

    配置环境:

    pod 'SSKeychain'

    SSKeyChain主要的api

    // 保存对应账户密码
    + (BOOL)setPassword:(NSString *)password forService:(NSString *)serviceName   account:(NSString *)account;
    // 提取对应账户密码
    + (NSString *)passwordForService:(NSString *)serviceName account:(NSString *)account;
    // 删除对应账户密码
    + (BOOL)deletePasswordForService:(NSString *)serviceName account:(NSString *)account;
    // 获取APP下所有账户
    + (NSArray *)accountsForService:(NSString *)serviceName;
    
    //如果存储的密码是NSData
    + (NSData *)passwordDataForService:(NSString *)serviceName account:(NSString *)account;
    
    + (BOOL)setPasswordData:(NSData *)password forService:(NSString *)serviceName account:(NSString *)account;
    

    SSKeyChain参数说明:

    SSKeyChain的方法中涉及到的变量主要有三个, password、service、account。password、account分别保存的是密码和用户名信息。 service保存的是服务的类型,就是用户名和密码是为什么应用保存的一个标志。比如一个用户 可以再不同的论坛中使用相同的用户名和密码,那么service保存的信息分别标识不同的论坛。由于包名通常具有一定的唯一性,通常在程序中可以用包的名称来作为service的标识。

    SSKeyChain和NSUserDefaults的比较

    1. NSUserDefaults数据以明文的形式保存在,而且存储的数据会随着APP卸载而删掉
    1. SSKeyChain是将数据加密后存储在本地,更安全,SSKeyChain存储的数据不会删除

    示例:

    code:

       //说明:account、service、password分别为账户、服务名、密码,
       [SSKeychain setPassword:@"123456" forService:@"pwd" account:@"xm"];
    
        NSLog(@"xm 的 信息%@",[SSKeychain passwordForService:@"pwd" account:@"xm"]);
    
    
        if ([SSKeychain deletePasswordForService:@"pwd" account:@"xm"]) {
        
            NSLog(@"删除成功");
            NSLog(@"xm 的 信息%@",[SSKeychain passwordForService:@"pwd" account:@"xm"]);
        
        }else
        {
            NSLog(@"删除失败");
            NSLog(@"xm 的 信息%@",[SSKeychain passwordForService:@"pwd" account:@"xm"]);
        }

    相关文章

      网友评论

      • 042a0e1be73f:用CocoaPods导入的时候会提示SSKeychain has been deprecated in favor of SAMKeychain,请问这是什么意思?
        042a0e1be73f:@Sean_Shi 谢谢啦!
        Sean_Shi:@iOSwift 这意思就是已弃用了,用后面那个
      • sytuzhouyong:建议使用KeychainItemWrapper,SSKeyChain有坑
        大眼萌璇璇:@sytuzhouyong 请问SSKeyChain的坑点在哪里
      • 赤脊山的豺狼人:我也写过以前SSKeychain的文章,有空交流下
      • 5fff1c1a968e:我们工程用到这个在reasels 模式下是有问题的,还是建议先别用这个到工程

      本文标题:SSKeyChain保存密码的N姿势

      本文链接:https://www.haomeiwen.com/subject/vwcvdttx.html