1. openssl简介
openssl是一个安全套接字层的密码库。它可以提供密钥生成、证书管理、格式转换、数据加密和解密、签名和验签等功能。
为了实现数据的安全传输,我们需要保证:数据的来源(非伪造请求)、数据的私密性(密文,无法直接读取)、数据的完整性(没有被人修改过)。
1.1 对称加密
对称加密指的是加密和解密使用的是同一个密钥。
速度快,安全性一般。
常见的对称加密算法有AES、DES、Blowfish、CAST、IDEA、RC2、RC5。
1.2 非对称加密
非对称加密指的是加密和解密使用的是一对密钥(公钥和私钥)。一般将公钥公开,自己保存私钥。用公钥加密数据,然后用私钥解密;也可以用私钥加密,公钥解密。
速度较慢,安全性高。
常见的非对称加密算法有RSA、DSA、DH、EC。
1.3 签名
为了保证数据的完整性,可通过散列函数(哈希算法)计算得到一个散列值(哈希值),这个散列值被称为数字签名。