对称加密含义:对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key),这种方法在密码学中叫做对称加密算法。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。
非对称加密含义:非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人--银行才能对你的消息解密。与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。
常用的对称加密:
1).DES: java6只支持例56位秘钥长度,通过BounvyCastle可以将秘钥长度增加至64位。例:http://blog.csdn.net/u013791374/article/details/51970860
2).3重DES:作为DES的改良(核心还是DES),针对DES秘钥长度偏短,迭代次数偏少,等问题进行了改良,秘钥长度从56位提升到112或168位,优点:抗穷举的能力显著增加,缺点:加密低效,处理速度较慢。例:http://blog.csdn.net/u013791374/article/details/51971188。
3).AES:AES的基本要求是: 比三重DES快、至少与三重DES一样安全、数据分组长度为128比特、密钥长度为128/192/256比特。优点:秘钥建立时间短,存储要求低。
常用的非对称加密:
1).RSA:秘钥长度1024位。例:http://blog.csdn.net/u013791374/article/details/51980724
总结
(1) 对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。
(2) 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。
(3) 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。