一、对称加密
1、概述
加密和解密都使用同一把秘钥
2、缺点
秘钥需要双方先协商好,秘钥不适合在网上传输(在网上传输有被人截获的可能);每两个人就得用一种秘钥,如果人数多的话秘钥也多,维护起来麻烦。
3、常见的对称加密算法:
DES (Data Encryption Standard)
3DES:也叫Triple DES,是三重DES加密。
AES (Advanced Encryption Standard)
二、非对称加密
1、概述
加密和解密是不同的钥匙
与对称加密算法不同,非对称加密算法需要两个密钥:公钥(publickey)和私钥(privatekey)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
2、缺点
加密速度慢,效率低
3、常见的非对称加密算法:
RSA
三:数字签名
作用:
(1)消息确实是由发送方发出来的
(2)保证消息的完整性,没有被篡改过。
如图所示,A需要给B发一份电子合同文件。首先,把合同用一个专用函数进行处理,不管源文件有多大,处理结束后都会生成一个128位的二进制,称为“摘要”。再用A的私钥把摘要进行加密,这个加密后的摘要,就叫A的数字签名。然后A把签名、公钥和源合同文件一起打包发送给B。
四、HTTPS详解
HTTPS:Hyper Text Transfer Protocol over Secure Socket Layer
s代表的含义:SSL协议(Secure Socket Layer)
SSL协议工作在应用层和TCP传输层之间
1.客户端向服务器发起请求,并告知服务器自己支持的协议和加密方式。并且生成一个伪随机数key1(Client Hello)
2.(1)确认使用的协议版本和加密方式
(2)服务器向客户端发送数字证书,数字证书是使用CA(数字证书颁发机构)的私钥加密的,其中包含服务器域名和服务器公钥等信息。
(3)生成一个伪随机数key2
3.客户端利用本身存储在操作系统或是浏览器中的CA公钥对证书进行解密和验证,得到服务器的公钥,然后自己生成一个对称秘钥(首先生成一个伪随机数key3, 根据key1,key2,key3生成),用服务器的公钥进行加密后发送给服务器。
4.双方用对称秘钥加密的密文进行通信。
为什么要有数字证书和第三方数字证书颁发机构(CA)?
保证服务器的公钥安全传输到客户端