iOS-Senior8-网络之进阶

一.数据安全

密钥:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥(也可以根据用途来分加密密钥和解密密钥)

明文:没有进行加密,能够直接代表原文含义的信息

密文:经过加密处理之后,隐藏原文含义的信息

加密:将明文转换为密文的实施过程

解密:将密文转换为明文的实施过程

数据安全:是一种主动的包含措施,数据本身的安全必须基于可靠的加密算法与安全体系,主要是有对称算法与公开密钥密码体系两种(非对称算法),都包含了数据的加密和解密过程

对称算法:对称密码算法有时又叫传统密码算法,是指加密密钥可以从解密密钥中推算出来,反过来也成立

非对称算法:对称密码算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立

加密算法有很多种,在iOS开发当中,MD5是我们常用的摘要算法

二.MD5加密

哈希算法:一段数据唯一且极其紧凑的数值表示形式。数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法

典型的哈希算法有:MD2,MD4,MD5,和SHA-1

 

直接上代码

 

三.钥匙串加密

直接上代码

四.公钥加密

公钥和私钥都是使用证书生成的,并非我们自定义字符串就可以,我们使用的是生成好的公钥和私钥。其中------BDGIN  PUBLIC  KEY------和------END   PUBLIC KEY------不属于密钥部分。

公钥:iOS客户端使用,我们拿到手公钥以后,只需要根据公钥处理数据就可以

 

  • 在创建证书的时候, terminal会提示输入证书信息. 根据wizard输入对应信息就OK. 
  • 在创建p12密匙时, 会提示输入密码, 此时的密码必须记住, 之后会用到.
  • 如果上面指令有问题,请参考最新的openssl官方文档, 以官方的为准. 之前在网上搜索指令, 被坑了一圈之后, 还是会到啃官方文档上. 每条指令文档在最后都会有几个sample,参考sample即可。

五.KVO

KVO:

(Key - Value - Observer)键值观察者,是观察者设计模式的一种具体体现。

 

KVO触发机制:一个对象(观察者),监测另一对象(被观察者)的某属性是否发生变化,若被监测的属性发生更改,会触发观察者的一个方法(方法名固定,类似代理方法)。

 

KVC使用步骤:

1.注册观察者(为被观察者指定观察者以及被观察属性)

2.实现回调方法

3.触发回调方法(被观察属性发生更改)

4.移除观察者

ViewController.h

//观察可变数组的改变情况(苹果官方文档不建议对数组进行观察)

@property (nonatomic,strong) NSMutabeArray *array;

1.注册观察者

[self addObserver:self forKeyPath:@"array" options:NSKeyValueObservingOptionNew context:nil];

2.实现回调方法

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSString *,id>*)change context:(void *)context {

    NSLog(@"keyPath = %@",keyPath);

    NSLog(@"object = %@",object);

    NSLog(@"change = %@",change);

    //可以进行刷新UI操作

}

3.触发可变数组进行改变

- (void)touchesBegan:(NSSet<UITouch *>*)touches withEvent:(UIEvent)event {

     NSArray *subArray = @[@"1",@"2",@"3",@"4",@"5"];

     //根据keypath获取到可变数对象

     [[self mutableArrayValueForKeyPath:@"array"] setArray:subArray];

}

4.视图将要消失的时候移除(位置自己定)

- (void)viewWillDisappear:(BOOL)animated{

      //在不需要观察者的时候,需要把他干掉

      [self removeObserver:self forKeyPath:@"array"];

}

 

posted on 2016-05-12 23:10  萌萌的周丽娜  阅读(244)  评论(0编辑  收藏  举报