加密的种类
MD5 AES RSA
加密的目的
加密的目的是为了防止数据的泄漏,在client和server之间传递的数据的时候,内容可能被三方截获。为了防止第三方解读、篡改数据,产生了各种各样的加密技术。
MD5
MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的128bit。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
RSA
非对称加密,公钥加密,私钥解密,反之亦然。由于需要大数的乘幂求模等算法,运行速度慢,不易于硬件实现。通常私钥长度有512bit,1024bit,2048bit,4096bit,长度越长,越安全,但是生成密钥越慢,加解密也越耗时。
既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密;同理,既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名,所以可得出私钥负责签名,公钥负责验证。
AES
对称加密,密钥最长只有256个bit,执行速度快,易于硬件实现。由于是对称加密,密钥需要在传输前通讯双方获知。
基于以上特点,通常使用RSA来首先传输AES的密钥给对方,然后再使用AES来进行加密通讯。
现在比较流行的加密方案是组合型的,上面三种方法的组合,MD5做签名,RSA+AES加密数据。
利用RSA的pk对AES的key做加密,然后发送给服务器;服务器利用SK解密得到AES的key。之后所有的数据都用AES做加密,所以服务器也能够正常解密。
参考资料
RSA与AES的区别
数据传输加密
网友评论