HTTP协议由于是明文传输,一些敏感的数据如账号密码住址等信息容易被黑客监听窃取,所以目前一般都网站都会采用HTTPS加密,在客户端和浏览器的通信过程中对数据进行加密,让黑客获取不到真实的信息,获取到也只能是加密的数据。要了解具体的加密如何实现的需要了解下一些常见的加密算法

对称加密:密钥在传输的过程也会被黑客窃取,所以黑客也可以解密加密内容

非对称加密:密钥在传输的过程中,如服务器向客户端发送公钥的工程中,黑客也可能拦截公钥,替换自己的公钥发送给客户端,客户端,使用公钥加密后,黑客可以使用自己的私钥来解密,从而获得客户端发送的数据,并且非对象加密效率非常低,要比对称加密慢几百倍

结合上面的分析,采用对称加密和非对称加密结合的方式,但是还是会存在黑客冒充公服务器发送公钥的问题

非对称加密问题的终结解决方案,数字证书——我们需要找到一个拥有公信力、大家都认可的认证中心(CA)
图片来自网络

在服务器向客户端发送公钥的过程中,服务器会把公钥和服务器的个人信息通过hash运算形成信息摘要,并且通过CA的私钥加密形成数字签名,数字签名和未经过hash之前的服务器个人信息以及公钥匙合并成数字证书发送给客户端

图片来自网络

客户端在收到数字证书后,使用CA的公钥对数字证书里面的数字签名进行解密得到一份信息摘要,对数字证书里面服务器的个人信息和公钥进行hash运算得到另外一份信息摘要,通过两份摘要进行比对,相同则信息来自服务器,否则则不是,从而解决服务器向客户端发送公钥的问题以及实现服务器和客户端之间数据的加密传输