Android加密方式

2020-03-25  本文已影响0人  星邪Ara

文章脑图

文章内容

1、什么是加密解密

2、加密解密类型

  1. 不可逆加密

  2. 可逆加密:对称加密和非对称加密
    对称加密:加密和解密数据都是使用同一个key
    非对称加密:加密和解密是使用不同的key。发送数据之前要先和服务端约定生成公钥和私钥,使用公钥加密的数据可以用私钥解密,使用私钥加密的数据可以用公钥解密

3、不可逆加密

4、对称加密(可逆)

5、非对称加密(可逆)

6、其他加密

Base64

7、加密方法

MD5

MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。

MD5本质是一种散列函数,用以提供消息的完整性保护。
单项的加密,不能解密,长度固定(32位)。
通过对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的 hash 值, 不同的文件产生相同的hash的可能性是非常小。

特点:
1.压缩性:任意长度的数据,算出的MD5值长度都是固定的;
2.容易计算:从原数据计算出MD5值很容易;
3.抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大的区别;
4.强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(及伪造数据)是非常困难的;
5.不可逆:MD5理论上是不可逆的(但是现在已经可以暴力破解了)。

但实际上MD5不是一种加密算法,只是一种算法,因为它是一个不可逆的过程,即 MD5 生成消息摘要后是不能通过结果解析得到原来的内容。

使用场景:
1.验证密码:只要算法不变,就能和服务器上的MD5匹配;在用户注册时,会将密码进行md5加密,存到数据库中。这样可以防止那些可以看到数据库数据的人,恶意操作了。
2.文件完整性的校验:当下载一个文件时,服务器返回的信息包括这个文件的md5,在本地下载完毕时进行md5加密,将两个md5值进行比较,如果一致则说明文件完整没有丢包现象。

SHA

安全散列算法,数字签名工具 , 长度比MD5要长,所以更安全,但是加密的效率要比MD5慢一些。
安全散列算法SHA (Secure Hash Algorithm),用于确保信息传输完整一致。SHA基于MD5实现。

是美国国家标准技术研究所发布的国家标准FIPS PUB 180,最新的标准已经于2008年更新到FIPS PUB 180-3。其中规定了SHA-1,SHA-224,SHA-256,SHA-384,和SHA-512这几种单向散列算法。SHA-1,SHA-224和SHA-256适用于长度不超过264二进制位的消息。SHA-384和SHA-512适用于长度不超过2128二进制位的消息。

SHA1有如下特性:
1.不可以从消息摘要中复原信息;
2.两个不同的消息不会产生同样的消息摘要。
3.著名的图片加载框架Glide在缓存key时就采用的此加密。
4.文件的秒传功能,以及相同的v4包冲突都是可以根据sha1值进行比对的。

AES加密

AES加密是一种高级加密标准,是一种区块加密标准。它是一个对称密码,就是说加密和解密用相同的密钥。WPA/WPA2经常用的加密方式就是AES加密算法。
高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。 这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用,Android 中的AES 加密 秘钥 key 必须为16/24/32位字节,否则抛异常。

DES加密

DES(Data Encryption Standard,数据加密算法)
是IBM公司于1975年研究成功并公开发表的,是一种堆成加密算法。

3DES加密

3DES是DES加密算法的一种模式,它使用3条64位的密钥对数据进行三次加密。数据加密标准(DES)是美国的一种由来已久的加密标准,它使用对称密钥加密法。
3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。
它以DES为基本模块,通过组合分组方法设计出分组加密算法。

DES与AES比较

单纯从名字上看AES(Advanced Encryption Standard)高级加密标准,安全性要高于DES,其实AES的出现本身就是为了取代DES的,AES具有比DES更好的安全性、效率、灵活性,所以对称加密优先采用AES。

RSA加密

RSA加密算法是一种非对称加密算法,非对称加密算法需要两个密钥:公共密钥和私有密钥。公钥和私钥是配对的,用公钥加密的数据只有配对的私钥才能解密。
RSA对加密数据的长度有限制,一般为密钥的长度值-11,要加密较长的数据,可以采用数据截取的方法,分段加密。
特点是加密速度比较慢,但是安全性比较高。

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

8、参考

Android常用加密方式

上一篇 下一篇

猜你喜欢

热点阅读