SSKeyChain保存密码的N姿势

配置环境:

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"]);
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容