Android几种加密方法概念、使用以及区别

android应用中常用的加密方式有三种:MD5,AES,RSA。在进行实际的开发过程中,一般是几种加密方式配合使用,这样加密效果会更好,被破解的概率会越小。下面我们就分别讲一下三种加密方式的实现过程。

一、MD5


MD5本质是一种散列函数,用以提供消息的完整性保护。


特点:


1.压缩性:任意长度的数据,算出的MD5值长度都是固定的;


2.容易计算:从原数据计算出MD5值很容易;


3.抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大的区别;


4.强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(及伪造数据)是非常困难的;


5.不可逆:MD5理论上是不可逆的(但是现在已经可以暴力破解了)。


使用场景:


1.验证密码:只要算法不变,就能和服务器上的MD5匹配;


[if !supportLists]2. [endif]文件完整性的校验:当下载一个文件时,服务器返回的信息包括这个文件的md5,在本地下载完毕时进行md5加密,将两个md5值进行比较,如果一致则说明文件完整没有丢包现象。

二、RSA加密


RSA加密算法是一种非对称加密算法,非对称加密算法需要两个密钥:公共密钥和私有密钥。公钥和私钥是配对的,用公钥加密的数据只有配对的私钥才能解密。

RSA对加密数据的长度有限制,一般为密钥的长度值-11,要加密较长的数据,可以采用数据截取的方法,分段加密。

使用场景:

文件或数据在本地使用公钥或私钥加密,加密后的数据传送到服务器,服务器使用同一套密钥中的私钥或者公钥进行解密。

三、AES加密

AES加密是一种高级加密标准,是一种区块加密标准。它是一个对称密码,就是说加密和解密用相同的密钥。WPA/WPA2经常用的加密方式就是AES加密算法。

示意图:

你可能感兴趣的:(Android几种加密方法概念、使用以及区别)