对称加密:加密和解密使用同一个密钥
特点:保证了数据的保密性。
局限性:无法解决密钥交换问题。
常用的算法有:DES,3DES,AES;
公钥加密:生成一个密钥对(私钥和公钥),加密时用私钥加密,解密时用公钥解密
特点:解决了密钥交换问题。
局限性:对大的数据加密速度慢。
单向加密:提取数据的特征码
特点:定长输出,不可逆,可检验数据的完整性。
局限性:无法保证数据的保密性。
常用算法:MD5、SHA1、CRC-32。
三种加密方法各有优缺点,在时实际应用中,数据从发送方到达接收方,
通常是这样应用的:
1)首先对要发送的数据做单向加密,获取数据的特征码;
2)对特征码用发送方的私钥进行加密生成S1;
3)然后对S1和数据进行对称加密生成S2;
4)最后将S2和对称加密的密码使用接收方的公钥进行加密。
这样一来数据在传输过程中的完整性、保密性以及对发送方身份的验证都能得到保障。
当数据到达接收方时,接收方先用自己的私钥对接收到的数据进行解密,得到密码和加密的数据;
使用密码对加密数据解密,得到加密的特征码和数据;用发送方的公钥解密特征码,如果能解密,
则说明该数据是由发送方所发;反之则不是,这便实现了身份验证;最后计算数据的特征码和解密出来的特征码做对比,
如果一样,则该数据没有被修改;反之则数据被修改过了。