• 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

  • 相关阅读:
    深入浅出Redis(三)高级特性:管道
    CxImage的编译及简单使用举例
    [Zlib]_[0基础]_[使用zlib库压缩文件]
    java 实现打印当前月份的日历
    hdu 5087 Revenge of LIS II ( LIS ,第二长子序列)
    spring理解一
    poj 3181 Dollar Dayz (整数划分问题---递归+DP)
    android键盘事件
    Linux编程环境介绍(2) -- shell(Bash) 介绍
    iphone开发中数据持久化之——嵌入式SQLite(三)
  • 原文地址:https://www.cnblogs.com/zero-zql/p/4708242.html
Copyright © 2020-2023  润新知