iOS 使用钥匙串将用户密码存入本地

在 iOS 开发中,用户一般注册时候,APP会将用户的用户名和密码直接保存到本地,便于用户下次直接进行登录。

这样就会牵扯到一个问题,用户的密码不能以明文的形式存储在本地,使用钥匙串进行保存用户的密码较为安全。

钥匙串的使用,需要使用第三方的框架, SSKeychain

#import "ViewController.h"
#import "SSKeychain.h"
#define kBundleID @"alexanderTest"
@interface ViewController ()
    
    @property (weak, nonatomic) IBOutlet UITextField *usernameField;
    @property (weak, nonatomic) IBOutlet UITextField *pwdField;
   
@end


@implementation ViewController


- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}


// 登录按钮的点击


/**
 一般用户注册之后,会将用户的账户和密码存在本地,但是都不会以明文的形式存储在本地,最为安全的做法就是使用苹果的钥匙串,来记录密码,其采用的是AES 加密算法,较为安全
 
 使用的话,
 1>  就是导入SSKeychain.h
 2>  iOS10 之后,需要在项目工程中 Cabilities 中的Keychain Sharing 选项中开启on
 
 */
- (IBAction)loginBtnClick:(id)sender {
    
    // 用户一旦输入username 有长度,就去加载本地的密码
    
    if (self.usernameField.text.length > 0) {
        // 去钥匙串取得密码
        NSError *error = nil;
        self.pwdField.text = [SSKeychain passwordForService:kBundleID account:self.usernameField.text error:&error];
   
        if (!error) {
            NSLog(@"取得本地数据成功");
        }else{
            NSLog(@"取得本地密码失败或者密码不存在");
        }
    }
}
 
    
- (IBAction)registBtnClick:(id)sender {
    NSString *username = self.usernameField.text;
    NSString *pwd = self.pwdField.text;
    
    // 将密码保存到本地
    
    /**
     将密码存入本地的方法
     参数1: 用户的密码
     参数2:服务名,一般都是此APP的 bundle ID,保证唯一性
     参数3:用户的账户,要通过账户将密码取出来
     
     */
    NSError *error = nil;
    [SSKeychain setPassword:pwd forService:kBundleID account:username error:&error];
    
    if (!error) {
        NSLog(@"存数据成功");
    }
}
    
@end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值