首先来看一下什么是对称加密和非对称加密:

- 对称加密:使用同一个秘钥对数据进行加密解密
- 非对称加密:加密和解密使用不同的秘钥,两个秘钥搭配使用(公钥可以公布,用于加密,私钥必须保密,用于解密)
**在互联网中,一台主机可以和任意一台其他主机通信,****无论是对称加密还是非对称加密,**对于每一对通信我们都需要尽量使用不同的秘钥,否则一但相同秘钥的两对主机监听到了对方的消息,就会导致加密数据被泄露
对于对称加密来说,它有以下缺点:
- 第一次通信的时候双方需要协商秘钥,但是协商秘钥的过程本身也需要加密,造成死循环(非对称加密的公钥是公开的,不需要保密,因此不会死循环)
- 如果一台主机和N台主机通信,那它要保存N个秘钥并且不能外泄(非对称加密不需要,只需要保存自己的私钥,就可以接受任意主机发来的用公钥加密的消息且数据不会被第二个主机解析成功)
而对于非对称加密来说,它有以下缺点:
- 每次加密解密性能开销比较大
因此在实际使用过程中,我们一般使用非对称加密来完成对称秘钥的确定(破除循环),然后使用对称秘钥进行通信(提高性能)