Android 加密解密-开篇

Android中的加密解密分为基于Java和基于C/C++两类,几乎C/C++有的加密算法在Java中都实现了。加密算法大多是公开的,Java反编译也无所谓,可能做成C/C++会更高效一些。出于各种考虑将算法做成C/C++可能会更安全一些。在以后JNI调用部分,会更新相关C/C++加密算法。本篇是对Android中主要的加密方法的总结,之后篇幅中会结合代码详细介绍加密算法。对每个算法代码,我都会实际的跑跑,确保正确可用。

加密:是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。

解密:将“密文”变为“明文”的过程被称为解密。     

一般可以分为对称加密(如DES、AES等)、非对称加密(如RSA等)和单向加密(如MD5等)3类算法。

在对称加密算法中、双方使用的密钥相同,要求解密方事先必须知道加密密钥。这类加密算法技术较为成熟,加密效率高。

在非对称加密算法中,收发双方使用不同密钥,发方使用公约,收方使用私有密钥,保密性更高,但效率低。

单向加密算法在加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,密文无法解密。只有重新输入明文,并经过同样的加密算法处理,得到相同的密文并被系统重新识别后,才能真正解密。

A:DES算法

DES是数据加密标准的简称,它是第一代公开的、完全说明实现细节的商用密码算法,并在1977年被美国政府真是采纳作为联邦标准。在1998年之后,DES不在作为联邦加密算法。但是时至今日,他在保护金融数据的安全,如自动取款机中,使用较多。DES算法经过16轮迭代,使用56比特长度密钥加密64比特长度(分组长度)的明文获得64别的密文。

B:AES算法

AES是高级加密标准(Advanced Encryption Standard)的简称,用于替代原先的DES,保护敏感信息。该算法由比利时密码学家发明,也被成为Rijndael算法。AES算法的分组长度为128比特,其密钥长度分别为128比特、192比特和256比特。

C:MD5算法

MD5全称是Message-digest Algorithm 5(信息-摘要算法),用于确保信息传输完整一致。在20世纪90年代初由Rivest设计,经MD2、MD3、MD4、MD发展而来。MD5用的是散列函数(Hash函数),其经典应用是对一段信息产生信息摘要,从而实现数值签名、登录口令的认证、为文档生成“”数字指纹“”等。MD5算法的基本思想是以512位分组来处理输入的信息,且每一分组又被划分为16个32位自分组级联后将产生一个128位的散列值。


我真是拼了,为了写这段按照书本上的字打了一遍,希望自身能记下,也希望看过的人没有白看。加密算法还有很多种,搞过密码学的肯定觉得这些都是小菜一碟。咱们以后再添加更多的加密算法吧。在JNI调用部分会对密码算法做更多扩充。敬请关注!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值