什么是加密算法?
**密钥**是用来加密传输内容的钥匙,加密后明文内容,变成无法识别内容又称为密文 这个过程称为**加密**。使用密钥还原加密后内容,我们称为**“解密”**。是加密的反向操作,加密解密的操作过程就是**“加密算法”。**
按照密钥的使用方式,加密可以分为两大类:对称加密和非对称加密。
1:对称加密
“对称加密”很好理解,就是指加密和解密时使用的密钥都是同一个,是“**对称”**的。只要保证了密钥的安全,那整个通信过程就可以说具有了机密性。如下图:
总结:
优点:速度快,对称性加密通常在消息发送方需要加密大量数据时使用,算法公开、计算量小、加密速度快、加密效率高。
缺点:在数据传送前,发送方和接收方必须商定好秘钥,然后 使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。
2:非对称加密
“非对称加密”有2把钥匙,一个叫**“公钥”**,一个叫**“私钥”**。两个密钥是不同的,**“不对称”**,公钥可以公开给任何人使用,而私钥必须严格保密。注意: 公钥和私钥有个特别的“单向”性,虽然都可以用来加密解密,但公钥加密后只能用私钥解密,反过来,私钥加密后也只能用公钥解密。
优点:安全。
缺点:速度较慢。
3:混合加密(非对称加密+对称加密结合)
可以看出对称加密问题密钥不安全、非对称加密问题通信速度比较慢,所以在通信刚开始的时候用非对称算法交换密钥,浏览器和服务器得到会话密钥。然后数据传输的时候通过对称加密进行加密传递。混合加密是两者互相取长补短,即能高效地加密解密,又能安全地密钥交换。