对称加密
概念
对称加密指加密和加密使用相同密钥的加密算法,也称为单密钥加密。
特点
特点是算法公开,计算量少,加密速度快,对于同样大小的传输对象,对称加密效率通常为非对称加密的千倍左右,因此通常被广泛应用与很多加密协议的核心工作(如https在真正数据通信时就是用的对称加密)
对称加密算法的缺点是解密使用同一把密钥,一旦一方密钥泄露,传输的数据就会存在安全风险,此外与多方的通信需要使用不同的密钥,通信双方需要管理大量的密钥
常用算法
常见的对称加密算法有:DES, 3DES, TDEA, Blowfish, RC2, RC4, RC5, IDEA, SKIP, JACK等
非对称加密
概念
非对称加密使用一对公钥和私钥来加密通信数据,也成为双密钥加密。
特点
公钥和私钥是成对出现的,通信数据使用公钥加密后,只能通过对应的私钥来解密,同样使用私钥加密后也只能通过公钥来解密查看。公钥是对外公开的,外界通信方可以很容易获取到,而私钥是不公开的。
服务器使用私钥加密的数据往外传输时,可以被持有公钥的客户端解密查看,但客户端使用公钥加密数据传输给服务端时,数据是严格安全的,只有服务器使用私钥才能解密查看
非对称加密的用途
- 单向传输加密数据,防止中间人攻击。使用公钥加密数据并传输给接受者,可以确保只有接收者才能获得明文信息
- 身份验证和数据校验。发送方使用私钥加密明文数据的hash值,并将明文,加密后的数据和公钥一起发送给接收方,接收方只需要通过公钥解密密文,然后与相同hash算法获取明文的hash值进行比较,一致则说明明文数据没有被篡改
常用算法
常见的非对称加密算法有:RSA, DSA, Diffie-Hellman, ECC等
摘要算法
摘要算法也成为哈希算法,散列算法,可以将任意长度的数据转换成一个定长的,不可逆的数据。只要源文本不同,计算的结果必然不同
常见的摘要算法:MD5, SHA-1