文章目录
一、前置知识点
1.密钥
①对称密钥
- 是一种加密和解密使用相同密钥的算法,效率较高,可加密内容较大,用来加密会话过程中的消息,适用于大规模生产的环境下使用
- 就像固定的一道门与一把钥匙一样,但是,对称加密算法在分布式网络系统上使用较为困难,因为密钥管理困难,使用成本较高,还是这个比方,你去收租,几百串钥匙你管的烦不烦?
- 相对于非对称密钥而言,安全性较差,就像捡到了你的钥匙,那么就可以直接来开你的门了
②非对称密钥
- 其原理是加密密钥与解密密钥不同,形成一个密钥对,其中一个密钥加密的结果,可以用另一个密钥来解密
- 加密和解密使用不同的密钥,一个密钥公开,称公钥,一个密钥保密,称私钥,相对而言,效率不高,但是安全性高
- 比如,大家一起去食堂吃饭,付款码就像公钥,每个人都可以看到(使用),私钥就代表着个人身份信息,用自己的私钥去验证,最终成功付款,才能干饭
③混合密钥(对称+非对称)
- 只用对称密钥进行信息传输,效率虽快,但是安全性差一点,被截胡怎么办?而用非对称密钥,安全性相对而言是有一定保障,但若是传输的信息量较大,光是去加密就需要耗费大量的时间,导致效率低下
- 因此,聪明人可能就想到了,我们就不能将其混合使用吗,各取所长:对要发送的明文(数据量较大)进行对称加密生成密文,然后对这个加密过程中生成的对称密钥进行非对称加密(私钥加密)
- 这就像,你用一把钥匙锁起来了一大箱金银财宝,然后将这把钥匙又用一个小匣子单独锁了起来,安全性更强!还要对其进行一个签名,即这个小匣子中还代表着你的身份信息
- 还有一个步骤,将明文在加密之前进行哈希算法产生一个哈希值,主要是为了验证数据的完整性,从而得知这个数据传过去有无被中间人篡改
- 最后,将密文、加密后的密钥、哈希值这三样一起传递给对方,对方将加密后的密钥用公钥解密后获取私钥,将密文解密成明文,然后比对哈希值,检查数据有无被篡改(若不同则丢弃)
2.签名
- 前面有提到过,签名代表着你的身份信息
- 打个比方,你扫二维码付款,收款商家能够得知是谁付的款,这个对象就是你的身份信息
3.数据完整性
- 这个前文也有提高过,使用哈希算法确保数据完整性
- 即这个数据在传输过程结束后能够最终检测其一致性
4.证书
- 组成:密钥+身份信息+哈希算法等,统统在其中,就像容器一样
- 格式:x509,国际标准
- 证书是需要被颁发的(证书颁发机构:CA),拿到 ca 证书后才能去找 CA 给自己颁发服务器证书(server,包含公钥),还需要有客户端证书(给客户端的,包含私钥)。