美文网首页
Android加密方式

Android加密方式

作者: 星邪Ara | 来源:发表于2020-03-25 18:07 被阅读0次

    文章脑图

    文章内容

    1、什么是加密解密

    • 加密用于安全保密,利用(加密)一定方法把数据转变为密文,然后再用相同或不同的方法将密文还原(解密)

    • 加密有两个元素:算法和密钥
      算法:将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的方法
      密钥:用来对数据进行编码和解密的一种算法

    • 在安全保密中,可通过适当的钥加密技术和管理机制来保证网络的信息通信安全。

    2、加密解密类型

    1. 不可逆加密

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

    3、不可逆加密

    • 只能加密,不能解密

    • 加密算法:MD5(散列)、SHA(哈希)、HMAC

    • 作为基础加密,MD5、SHA 可以通过暴力碰撞算法破解

    4、对称加密(可逆)

    • 对称加密:加密和解密使用同一个私钥

    • 对称加密算法:对称加密采用对称密码编码技术,特点是文件加密和解密使用相同的秘钥

    • 对称加密算法使用起来简单快捷,密钥较短,且破译困难

    • 国际数据加密算法(IDEA)比数据加密标准(DES)的加密性好,而且对计算机功能要求也没有那么高。IDEA加密标准由PGP(Pretty Good Privacy)系统使用。

    • 对称性加密算法有:AES、DES、3DES

    5、非对称加密(可逆)

    • 非对称加密:加密和解密使用不同的秘钥,公钥加密数据,私钥解密数据。公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密

    • 1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”

    • 非对称性加密:RSA、DSA、ECC

    6、其他加密

    Base64

    • Base64严格地说,属于编码格式,而非加密算法,用于二进制内容转换为可编辑的文本内容。

    • Base64也会经常用作一个简单的“加密”来保护某些数据,而真正的加密通常都比较繁琐。

    • 编码后的内容,是由64个字符(大小写英文字母 0-9 + / (= 补位符,填充字符))组成的序列,成为Base64。可逆的编码方式。

    • 常见于邮件、http加密,截取http信息,你就会发现登录操作的用户名、密码字段通过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常用加密方式

    相关文章

      网友评论

          本文标题:Android加密方式

          本文链接:https://www.haomeiwen.com/subject/nrmxuhtx.html