
# 加密

术语：
```
明文 plain text
密文 cipher text
秘钥 key
加密 encrypt
解密 decrtpt
加密算法 
```

## 对称加密

加密解密的秘钥是同一个
```
明文 秘钥加密 密文 秘钥解密 明文
```

eg: AES

## 非对称加密

加密解密的秘钥不是同一个

```
明文 公钥加密 密文 私钥解密 明文
```

eg: RSA

|加密分类 | 优点 | 缺点
|- | - | -
|对称加密 | 速度快 | 消息容易被破解 
|非对称加密 | 速度慢 | 消息不容易被破解


## 身份认证

- 加密信息：公钥加密 -> 私钥解密
- 身份认证：私钥加密 -> 公钥解密

## 摘要算法

摘要算法（Digest Algorithm）即：散列函数、哈希函数（Hash Function）

作用：保证数据完整性

```
固定长度字符串 = Hash(任意长度字符串)
```

好的摘要算法：

- 不可逆
- 难题友好性
- 发散性
- 抗碰撞性

常见算法：MD5、SHA1、SHA2（SHA224、SHA256、SHA384）

## 数字签名

```
发送方：
原文 -> hash -> 签名 -> private key -> 密文

接收方：
密文 -> public key -> 明文 -> hash -> 签名
```

## 数字证书

- 公钥
- 所有者
- 颁发者

使用场景：https
