
1.数据安全
01 数据安全的原则
1)在网络上"不允许"传输用户隐私数据的"明文"
2.)在本地"不允许"保存用户隐私数据的"明文"

1.png
2.Base64
encoding:NSUTF8StringEncoding]; } c.终端测试命令 $ echo -n A | base64 $ echo -n QQ== |base64 -D
3.常见的加密算法和其它
1. base64 编码格式2. 密码学演化 "秘密本"-->RSA3. 常见的加密算法 1)消息摘要(单向散列函数) 2)对称加密 3)非对称加密 4)证书等
4.单向散列函数
2)使用 ①客户端需要在发送的时候把(消息)+(消息·HMAC)一起发送给服务器 ②服务器接收到数据后,对拿到的消息用共享的KEY进行HMAC,比较是否一致,如果一致则信任

2.png
5.对称加密
1.对称加密的特点 1)加密/解密使用相同的密钥 2)加密和解密的过程是可逆的(明文-》明文-》明文)

3.png
2.经典算法 1)DES 数据加密标准 2)3DES 使用3个密钥,对消息进行(密钥1·加密)+(密钥2·解密)+(密钥3·加密) 3)AES 高级加密标准 3.分组密码简单说明 密码算法可以分为分组密码和流密码两种。 分组密码:每次只能处理特定长度的一zu数据的一类密码算法。一个分组的比特数量就称之为分组长度。 ex:DES和3DES的分组长度都是64比特。即每次只能加密64比特的明文,并生成64比特的密文。AES的分组长度有128比特、192比特和256比特可以选择。 流密码:对数据流进行连续处理的一类算法。流密码中一般以1比特、8比特或者是32比特等作为单位俩进行加密和解密。 4.ECB分组模式 ECB模式的全称为Electronic CodeBook模式。又成为电子密码本模式。 特点: 1)使用ECB模式加密的时候,相同的明文分组会被转换为相同的密文分组。 2)类似于一个巨大的明文分组-》密文分组的对照表。

4.png

5.png
终端测试命令: 加密 $ openssl enc -des-ecb -K 616263 -nosalt -in 123.txt -out 123.bin 解密 $ openssl enc -des-ecb -K 616263 -nosalt -in 123.bin -out 1231.txt -d 5.CBC分组模式 CBC模式全称为Cipher Block Chainning模式(密文分组链接模式|电子密码链条) 特点:在CBC模式中,首先将明文分组与前一个密文分组进行XOR运算,然后再进行加密。
6.非对称加密
1.非对称加密的特点 1)使用公钥加密,使用私钥解密 2)公钥是公开的,私钥保密 3)加密处理安全,但是性能极差

6.png
512 以明文输出私钥内容:$ openssl rsa -in private.pem -text -out private.txt 校验私钥文件:$ openssl rsa -in private.pem -check 从私钥中提取公钥:$ openssl rsa -in private.pem -out public.pem -outform PEM -pubout 以明文输出公钥内容:$ openssl rsa -in public.pem -out public.txt -pubin -pubout -text 使用公钥加密小文件:$ openssl rsautl -encrypt -pubin -inkey public.pem -in msg.txt -out msg.bin 使用私钥解密小文件:$ openssl rsautl -decrypt -inkey private.pem -in msg.bin -out a.txt 将私钥转换成 DER 格式:$ openssl rsa -in private.pem -out private.der -outform der 将公钥转换成 DER 格式:$ openssl rsa -in public.pem -out public.der -pubin -outform der -----------------
7.数字签名
1.数字签名的应用场景 答:需要严格验证发送方身份信息情况2.数字签名原理 1)客户端处理 ①对"消息"进行 HASH 得到 "消息摘要" ②发送方使用自己的私钥对"消息摘要" 加密(数字签名) ③把数字签名附着在"报文"的末尾一起发送给接收方 2)服务端处理 ①对"消息" HASH 得到 "报文摘要" ②使用公钥对"数字签名" 解密 ③对结果进行匹配

7.png
8.数字证书
2)OpenSSL默认生成的都是PEM格式的证书
9.HTTPS的基本使用
"AFSSLPinningModeCertificate"则是直接将本地的证书设置为信任的根证书,然后来进行判断,并且比较本地证书的内容和服务器证书内容是否相同,来进行二次判断,此方式适用于较高安全要求的验证。 如果HTTPS服务器满足ATS默认的条件,而且SSL证书是通过权威的CA机构认证过的,那么什么都不用做。如果上面的条件中有任何一个不成立,那么都只能修改ATS配置。
附:HTTP 和HTTPS的区别
HTTP:当客户端发送请求,那么服务器会直接返回数据.

HTTP.png
HTTPS:当客户端第一次发送请求的时候,服务器会返回一个包含公钥的受保护空间(也成为证书),当我们发送请求的时候,公钥会将请求加密再发送给服务器,服务器接到请求之后,用自带的私钥进行解密,如果正确再返回数据。这就是 HTTPS 的安全性所在。


