一.对称加密和非对称加密概念引入
- 对称加密算法
加密和解密用到的密钥是相同的。这种加密方式加密速度非常快,适合经常发送数据的场合,如:微信小程序。缺点是密钥的传输比较麻烦。
- 非对称加密算法
加密和解密用的密钥是不同的。这种加密方式是用数学上的难解问题构造的,通常加密解密的速度比较慢,适合偶尔发送数据的场合,如:git生成ssh秘钥。优点是密钥传输方便。常见的非对称加密算法为RSA、ECC和EIGamal。
二.加密算法
1.hash
- 1.常见的hash算法
md4,md5,sha1,sha2,sha3,常用的md5,sha2,sha256 - 2.用途
1.唯一值计算
2.数据安全校验
3.数据加密
4.散列函数
5.负载均衡
6.数据分片
7.分布式
8....
2.RSA
-
1.介绍
RSA算法是非对称加密算法,是目前使用最为广泛的公钥秘钥体制之一 -
2.加密/解密
使用公钥加密的数据,利用私钥进行解密
使用私钥加密的数据,利用公钥进行解密 -
3.优/弊端
a>优点
1.非对称加密相对比较安全,安全性较高.
2.适用于少量数据加解密
b>缺点
1.数据本身加解密使用的大数计算,速度和时间上相对于对称加密算法慢上好几倍甚至更高。
2.如果通过网络传输,生成的秘钥字符串较长,建议使用post请求方式发送。
3.AES
- 1.概念
明文paintext:没有经过加密的数据
密钥key:用于加密明文的密码。在对称加密算法中,加密与解密的密钥是相同的。
AES加密函数:E(P,K)
密文:ciphertext,密文C=E(P,K)
AES解密函数:D(C,K)
二.数字签名
- 1.原理
数字签名的原理是将要传送的明文通过一种函数运算(Hash)转换成报文摘要,报文摘要加密后与明文一起传送给接受方,接受方将接受的明文产生新的报文摘要与发送方的发来报文摘要比较,比较结果一致表示明文未被改动,如果不一致表示明文已被篡改。数字签名必须保证数字签名的安全性,就是在不发生碰撞时才行。
- 2.引入什么是碰撞
当两个不同的值或文件可以产生相同的散列,则称碰撞。
三.数字证书
- 1.什么是数字证书
数字证书为实现双方安全通信提供了电子认证。在因特网、公司内部网或外部网中,使用数字证书实现身份识别和电子信息加密。数字证书中含有密钥对(公钥和私钥)所有者的识别信息,通过验证识别信息的真伪实现对证书持有者身份的认证。
- 2.数字证书原理
- 3.使用数字认证实现电子验签
备注
RSA和AES结合的封装实例已经封装好,放在我的git上,有需要的可以在我的git上自行拉取相关源码。