粗略概述下加密:html
背景: 简单的举个例子:A 与 B 通讯(英文),内容可能会被截取,从而形成信息泄露。那么是否是能够加密下?A B共同维护一个密码本(设为26英文字母), 加密:字母均向后移动 3 位, 解密:字母向前移动 3 位,这就是简单的“对称加密”了(现实中没这么easy)前端
=> 密码本泄露了怎么办,密码在传输过程当中泄露了怎么办?git
这就引来一个问题,那么非对称加密来啦github
一份秘钥,加密者经过该秘钥加密,解密者经过该秘钥解密。算法
A 与 B 通讯,须要A,B均知道秘钥。函数
优点: 传输速度快加密
劣势: 若A 已知密码,要传给B的过程当中,被劫持了怎么办?cdn
两种形式:htm
私钥加密,公钥解密: 应用场景,https中的,数字签名blog
公钥加密,私钥解密:应用场景,https中
问题1:如何作到防篡改呢?
签名 => CA公钥解密 => 摘要1
原文 => hash算法 => 摘要2
判断:摘要1 === 摘要2
问题2: 证书里有什么?
问题3:CA直接认证全部的服务吗?
固然不了,想象一下,若是全部的服务都需CA认证,~~~ CA使用链式认证的; 证书认证机构, CA, 根证书认证的证书较少, => 链式认证
问题4 如何验证证书? 客户端有两个摘要,经过比对是否相同来作验证,下面分别介绍两个摘要~
摘要1: 服务端: 原文 => hash算法 => 摘要1 => CA私钥加密 => 签名
客户端: 签名 => CA公钥解密 => 摘要1
摘要2: 原文 => hash算法 => 摘要2