什么是对称加密、非对称加密、单向散列、消息认证码、数字签名、证书、PKI体系算法
信息安全浏览器
实现信息安全的机密性,那么可使用对称加密安全
什么是对称加密:服务器
实现信息安全的机密性,那么可使用非对称加密markdown
什么是非对称加密:并发
使用非对称加密算法能够直接加密信息。好比小明生成本身的密钥时,把公钥对外公开。小红想向小明传输信息可以使用小明的公钥对消息加密后再发送,而后小明收到后能够用本身的私钥来解密。其余人即时获得加密后的信息也没法破解。svn
不过这样使用开销很大,通常现实中使用对称加密来加密原始消息,使用非对称加密来传输用来加密消息的对称密钥,(用非对称加密来加密对称加密的密钥。)函数
能够用单向散列来证实数据的完整性flex
不定长的数经散发处理后会压缩成固定长度。其特色是相同的输入必定有相同的输出,不一样的输入几乎没有相同的输出,根据输出没法还原输入。网站
场景举例:咱们再网站上对外公布了一个10Gb大小的资源连接和对应的sha256哈希值。用户从第三方下载到相似资源后能够作sha256散列运算,若是计算的哈希值和咱们原始资源的哈希值相同,就表示数据是真实完整的
常见的散列算法有:MD5(不安全)、SHA一、SHA256
消息认证码就是带密钥的散列函数
特色:
toekn = header(算法名)+ '.' + payload(有用信息) + '.' + hmac(header + '.' + patload,密钥)
使用场景:JWT鉴权使用的token就用到了消息认证码。当服务器把token发送给客户端,客户端下次请求时要带上token,服务器收到token后会截取 header + '.' + payload 作hmac运算,获得的结果和token的第三部分即hmac作对比。
小明使用私钥对消息加密即签名,其余人使用小明的公钥若是能解密表示消息必定是小明发的。
签名能防止抵赖的发生,用来保证信息的不能否认性
一个证书上包含一些公开的明文信息以及证书颁发者对该信息的签名(私钥加密)。任何人想验证证书信息的真伪,只须要用证书颁发者的公钥对签名进行解密,再和证书上的明文信息作对比便可。
HTTPS是超文本传输安全协议,在HTTP的基础上经过传输加密和身份认证保证了传输过程的安全性。
HTTPS = HTTP + SSL
详细流程:
简单的来讲: