KIKeyChain 安全保存用户名和密码

在 iOS 应用程序开发过程中,我们经常会存储一些比较重要的信息。如涉及到用户系统的 App, 我们就需要考虑自动登录的功能,如果把用户的用户名和密码存储在 NSUserDefault 中很不安全。第一,该信息是明文存储的;第二,可以通过一些工具获取到 NSUserDefault 中的信息。容易造成泄露用户的账号信息。
出于安全方面的考虑,Apple 为我们提供了一个叫 KeyChain 的工具, 存储在里面的信息不能说绝对安全,但是相对于 NSUserDefault 或者其它一些存储在 App 沙盒中的信息,其要安全很多。第一,KeyChain 的存储位置位于 /private/var/Keychains/... ,如果我们要直接访问里面的信息,必须要先越狱之后才能访问;第二,KeyChain 的关键信息都是经过加密处理的,所以就算获取到之后也还需要做破解工作。
网上有很多关于 KeyChain 的访问组件,Apple 也提供了相应的 Demo。但是,感觉不怎么实用,操作起来相对麻烦。所以决定自己对其重新进行封装,所以就有了这个 KIKeyChain 这个组件。

#import "ViewController.h"

#import "KIKeyChain.h"

 

@interface ViewController ()

 

@end

 

@implementation ViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    

    KIKeyChain *key = [KIKeyChain keyChainWithIdentifier:@"default_user"];

    [key setValue:@"user1" forKey:@"username"];

    [key setValue:@"password1" forKey:@"password"];

    [key write];

}

 

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

 

- (void)viewDidAppear:(BOOL)animated {

    [super viewDidAppear:animated];

    

    KIKeyChain *key = [KIKeyChain keyChainWithIdentifier:@"default_user"];

    

    NSLog(@"%@==%@", [key valueForKey:@"username"], [key valueForKey:@"password"]);

}

 

@end

posted @ 2015-08-06 16:07  zero_zql  阅读(189)  评论(0编辑  收藏  举报