优势: 算法公开、计算量小、加密速度快、加密效率高缺点:若是有一方丢失密钥,数据就不安全算法
常见的算法:AES、DES、IDEA、RC四、RC五、RC6安全
公开密钥与私有密钥是一对,若是用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;若是用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。由于加密和解密使用的是两个不一样的密钥,因此这种算法叫做非对称加密算法。性能
优势: 安全缺点:速度较慢加密
常见的算法:RSA、ECC、DSA、Diffie-Hellman、
El Gamalhash
单向算法,用户能够经过hash算法对目标信息生成一段特定长度的惟一hash值,但不能解密,
所以Hash算法经常使用在不可还原的密码存储、信息完整性校验等。效率
常见的摘要算法有: MD二、MD四、MD五、HAVAL、SHA原理
由于每次使用非对称加密消耗的性能不少,那么能不能和对称加密结合起来呢?SSL/TLS就是一种这样的标准,咱们这里先举一个例子:客户端和服务端通讯密码
原理:客户端使用服务端的公钥来 非对称加密一条密文,这条密文是 对称密钥,服务端经过本身的私钥解密出来知道是对称加密的密钥后,后面通讯就使用 对称加密,这样安全和性能就能共存了。
风险:在服务端把公钥发送给客户端时,被中间人截获,中间人返回本身的公钥,客户端的对称密钥就会被中间人用私钥解密出来,而后中间人再用服务端的公钥加密发给服务端,这样后面的对称加密数据都会被中间人解密通信
解决办法:CA(证书认证机构),服务端在CA申请证书,客户端拿到公钥后去CA验证是不是服务端的公钥数据