对称加密与非对称加密组合使用
- 明文+对称密钥=对称加密后的明文
- 对称密钥+非对称公钥=非对称加密后的对称密钥
- 非对称私钥+非对称加密后的对称密钥=对称密钥
- 对称密钥+对称加密后的明文=明文
注意
- 其中对称密钥是一次性的,每次操作都会生成新的对称密钥对明文进行加密
- 需要管理非对称加密中公钥与私钥的配对
=================================================
实际应用
- 用户在客户端请求查看文章,此请求会带上加密狗的唯一标识
- 服务端收到请求后,确保该请求有附带加密狗的唯一标识
- 服务端从数据库获取指定的文章(如果加密存储,则获取后进行解密)
- 服务端生成一个对称密钥
- 服务端使用对称密钥对明文的文章进行对称加密
- 服务端根据加密狗的唯一标识从数据库获取公钥
- 服务端使用公钥对对称密钥进行非对称加密
- 服务端将密文的对称密钥传回客户端
- 客户端将密文的对称密钥传入加密狗(存储着私钥),并获得明文的对称密钥
- 客户端使用明文的对称密钥对密文的文章进行解密获得明文的文章
注意
- 客户端:加密狗(加密狗中有非对称私钥)
- 网络传输:加密后的对称密钥、加密后的明文
- 服务器:非对称公私钥的配对、明文