### 什么是对称加密和非对称加密?
#### **对称加密:共享一把“钥匙”**
对称加密好比你和好友共享了一把钥匙,用这把钥匙可以同时锁箱子和开箱子。
**特点:**
- 加密和解密都使用同一把密钥。
- 速度快,适合处理大量数据。
- **缺点:** 如果钥匙被别人偷走了,所有数据都会暴露。
#### **非对称加密:一把“公钥”和一把“私钥”**
非对称加密则更加复杂。它有两把钥匙,一把是“公钥”(可以公开给任何人),另一把是“私钥”(仅自己保存)。
**特点:**
- 公钥加密的数据只能用对应的私钥解密。
- 私钥签名的数据可以用对应的公钥验证。
- **缺点:** 由于加解密过程涉及复杂的数学运算,速度相对较慢。
---
### HTTPS 的工作原理:对称加密与非对称加密的结合
HTTPS 基于 SSL/TLS 协议,结合了非对称加密和对称加密的优势。我们通过一个具体例子来说明它是如何工作的。
#### **一个 HTTPS 的故事:访问网上银行**
##### **1. 非对称加密阶段:握手与密钥交换**
1. **浏览器发起请求:**
你在浏览器输入银行官网的地址,浏览器告诉服务器它支持的加密算法。
2. **服务器返回证书:**
银行服务器发送一个数字证书,证书中包含:
- 银行的公钥。
- 证书颁发机构(CA)的签名(证明证书合法性)。
3. **浏览器验证证书:**
浏览器检查证书是否可信,比如:
- 是否由权威的 CA 签发。
- 证书是否过期。
验证通过后,浏览器生成一个随机的对称密钥,并用服务器的公钥加密后发送给服务器。
4. **服务器解密密钥:**
服务器使用自己的私钥解密,得到对称密钥。
##### **2. 对称加密阶段:安全传输数据**
接下来,浏览器和服务器都拥有了相同的对称密钥,后续通信使用对称加密来保护传输的数据,例如:
- 你的登录密码。
- 银行账户余额。
- 交易记录。
这种方式结合了非对称加密的安全性和对称加密的高效性,保证数据传输既安全又快速。
---
### 为什么 HTTPS 要结合两种加密方式?
- **非对称加密保证密钥分发的安全性:**
通过非对称加密安全地传递对称密钥,即使被第三方截获也无法解密。
- **对称加密提高传输效率:**
对称加密速度快,适合加密大量数据。
简单来说:
- 非对称加密解决了“如何安全地递钥匙”的问题。
- 对称加密解决了“如何高效地加密数据”的问题。
---[/md]