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"]);
    }

你可能感兴趣的:(SSKeyChain保存密码的N姿势)