网络之数据安全(2):钥匙串加密

2016-04-07  本文已影响91人  永恒守护__刘鹏辉

什么是钥匙串?

钥匙串:(Keychain)是苹果公司Mac OS中的密码管理系统。它在Mac OS 8.6中和iOS7之后被导入,并且包括在了所有后续的各版本中。一个钥匙串可以包含多种类型的数据:密码(包括网站,FTP服务器,SSH账户,网络共享,无线网络,群组软件,加密磁盘镜像等),私钥,电子证书和加密笔记等。

钥匙串加密

钥匙串的使用

#import "ViewController.h"

#import "KeychainItemWrapper.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 开始的时候先把钥匙串类拷贝到工程中,也就是KeychainItemWrapper.h和KeychainItemWrapper.m文件,然后引入.m头文件
    // 另外引入的头文件是MRC模式的,需要修改BuildPhases中的值
    
    // 1. 创建一个钥匙串对象
    // 参数1 : 表示这个钥匙串对象的标识符
    // 参数2 : 分组 一般为nil
    KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyItemWrapper" accessGroup:nil];
    
    // 钥匙串是类似于字典存储的, 在存储的时候 必须使用系统提供的两个key值, 其他的存不进去
    id kUserName = (__bridge id)kSecAttrAccount;
    id kPassWord = (__bridge id)kSecValueData;
    
    // 存入到钥匙串里面
    [wrapper setObject:@"123" forKey:kUserName];
    [wrapper setObject:@"abc" forKey:kPassWord];

#pragma mark ---- 获取钥匙串的数据
    
    KeychainItemWrapper *newWrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"MyItemWrapper" accessGroup:nil];
    // 取值
    NSString *userName = [newWrapper objectForKey:kUserName];
    NSString *passWord = [newWrapper objectForKey:kPassWord];
    NSLog(@"userName ===== %@, passWord ==== %@", userName, passWord);
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
@end
ARC设置修改及工程截图.png
上一篇 下一篇

猜你喜欢

热点阅读