前置知识
一、先搞懂:对称加密
核心逻辑:加密和解密用同一个密钥(比如 AES)
- 优点:速度极快,适合大文件 / 大数据加密
- 缺点:密钥分发麻烦 —— 你怎么安全地把密钥发给对方?中途被截获就全泄露了
二、非对称加密:一对密钥的两种用法
非对称加密的核心是一对密钥:
- 公钥:可以公开给所有人,谁都能拿到
- 私钥:只有你自己能持有,绝对不能泄露
它有两种完全不同的用法,目的、流程、作用都不一样,这也是你疑惑的点:
1. 公钥加密,私钥解密 → 目的:保密,防偷看
-
场景:你要给别人发秘密消息,不想任何第三方看到内容
-
流程:
- 你拿到对方的公钥(公开的,谁都能拿)
- 用对方的公钥加密你的明文 → 变成密文(只有对方的私钥能解开)
- 发给对方,对方用自己的私钥解密,拿到明文
-
大白话:相当于你把信放进一个只有对方有钥匙的保险柜里,别人拿到保险柜也打不开,只有对方能开。
2. 私钥签名,公钥验签 → 目的:防伪造、防篡改,证明 “这是我发的,没被改”
-
场景:你要给别人发消息,让对方确认 “这消息确实是你发的,中途没人篡改过”,但消息内容可以公开
-
流程:
-
你用自己的私钥,对消息(实际是对消息的哈希值,效率更高)生成一个签名(相当于 “电子公章”)
-
把「明文 + 签名」一起发给对方
-
对方用你的公钥验签:如果验证通过,就说明两件事:
- 消息确实是你发的(只有你有私钥,别人造不出这个签名)
- 消息没被篡改(改了的话,验签会直接失败)
-
-
大白话:相当于你在文件上盖了只有你能盖的公章,别人没法伪造,也没法偷偷改文件内容,改了公章就对不上了。
TLS握手,小林这张图画的很不错,根据这张图和前面知识应该就可以理解了