这是我参与「第三届青训营 - 后端场」笔记创作活动的的第 4 篇笔记。
公钥与私钥
简单概括:公钥加密,私钥解密;私钥签名,公钥验签。
基本原理
服务端对每个客户端生成一个私钥和对应的公钥,客户端可以拿到服务端提供的公钥。
- 当客户端需要向服务器传输加密信息时,使用公钥加密信息,然后服务端可以通过对应的私钥解密。
- 当服务端需要向客户端传输信息时,先使用 Hash 生成信件的摘要 (digest),然后用私钥将这个摘要 (digest) 加密,生成数字签名 (signature)。服务端将数字签名和信息一起发送给客户端。客户端收到信息后,将数字签名 (signature) 用相应的公钥解密,得到摘要 (digest) ,客户端将对于信件使用同样的 Hash,然后与摘要 (digest) 比对是否相同,即验签,来判断是否信件被更改过。
数字证书 (Digital Certificate)
证书中心 (Certificate Authority, 简称CA),证书中心用自己的私钥,对服务端的公钥和一些相关信息一起加密,生成数字证书(Digital Certificate)。
服务端在签名的同时,再附上数字证书,就可以实现验证公钥的功能,客户端收到信息后,用CA的公钥解开数字证书,就能获得真实的公钥。
应用:HTTPS 协议,SSL
Token
登录验证,即在本地客户端登录一次后,通过 Token 可以免去访问其他页面再次登录。
- Token 通常包含用户的识别信息,并且有一个期限 (expire),到期则过期无法使用
- Token 通常是服务端生成给客户端,客户端将其作为标识,使得服务端知道是哪个客户端。
UUID
UUID (Universally Unique Identifier),通用唯一识别码,所有元素都有唯一的识别信息。
用于邮箱验证时使用。