Android开发 加密技术

原创 2015年11月19日 18:27:25

加密往往会伴随网络传输一起出现,以为理论上,不管数据通过任何形式网络传输都有有可能被截获,这就要求数据传输过程劲量保证安全,而加密技术真是解决数据安全的重要途径。在很多从事数据安全、网络应用的企业尤其看重开发人员加密技术的掌握程度。

Android SDK 支持4种加密技术:MD5、SHA、HMAC、和AES。其中前三个是不可逆加密。AES是可逆加密算法。实际上,如果将Base64编码表中的字符随机打乱也属于加密算法,而且是可逆加密。下面就开始介绍这几种加密算法:

MD5(信息-摘要算法),广泛用于加密和解密技术,常用于文件校正。不管文件有多大,经过MD5后都生成唯一的MD5值,就像现在的ISO校验,都是MD5校验。

SHA(安全散列算法),数字签名等密码学应用 重要工具,被广泛的应用与电子商务等信息安全领域。虽然,SHA与MD5通过碰撞算法都被破解了,但是SHA仍然是公认的安全加密算法,较MD5更为安全。

HMAC(散列消息鉴别码,基于密钥的Hash算法的认证协议)用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,即MAC,并且将其加入到消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证等。

MD5算法:

//source参数是待加密的字符串,encrypt_MD5方法返回加密后的结果

public String encrypt_MD5(String sourse) throw Exception

{

MessageDiagest md5 = MessageDiagest.getInstanse("MD5");

md5.update(source.getBytes());

return Base64.encodeToString(md5.digest(), Base64.DRFAULT);

}

SHA算法:

public String encrypt_SHA(String sourse) throw Exception

{

MessageDiagest sha= MessageDiagest.getInstanse("SHA");

sha.update(source.getBytes());

return Base64.encodeToString(sha.digest(), Base64.DRFAULT);

}

HMAC算法:

public static String initMacKey( ) throw Exception

{

KeyGenerator keyGenerator = KeyGenerator.getInstanse("HMAC");

SecretKey secretKey =keyGenerator.generateKey();

return Base64.encodeToString(secretKey.getEncoded(), Base64.DRFAULT);

}

//HMAC加密

public static String encrypt_HMAC(String source , String key ) throw Exception

{

SecretKey secretKey = new SecretKeyKeySpec(Base64.decode(key,Base64.DRFAULT),"HMac");

Mac mac = Mac.getInstance(secretKey.getAlgorithm());

return Base64.encodeToString(mac.doFinal(Source.getBytes()), Base64.DRFAULT);

}

// 使用HMAC算法对数据进行加密

try{

String key = initMacKey();

String result = encrypt_HMAc("Android",key);

}catch(Exception e){}

欢迎进入我的微信公众号:










版权声明:本文为博主原创文章,未经博主允许不得转载。

Android中的加密技术

Android中支持四种加密技术,MD5,SHA,HMAC和AES,前三种是不可逆算法,最后一种是可逆的加密算法。        所谓不可逆加密,就是数据经过加密后不能还原成原来的数据。在一些情况下...

快速集成Android最常用八种加密算法

数据的安全性可谓是重中之重的,前两年大司频发的安全事件也是被炒的热火朝天~究竟该如何增加数据机密安全性,我们来唠唠。 说到安全,范围大的让人喘不过气来,关于安全的知识以及如何防范,暂时先不涉入,踩得深...

Android加密算法

基本需求及概念随着Internet网的广泛应用,信息安全问题日益突出,以数据加密技术为核心的信息安全技术也得到了极大的发展。目前的数据加密技术根据加密密钥类型可分私钥加密(对称加密)系统和公钥加密(非...

Android逆向之旅---基于对so中的函数加密技术实现so加固

一、前言今天我们继续来介绍so加固方式,在前面一篇文章中我们介绍了对so中指定的段(section)进行加密来实现对so加固http://blog.csdn.net/jiangwei091041000...

Android逆向之旅---基于对so中的section加密技术实现so加固

转:http://blog.csdn.net/jiangwei0910410003/article/details/49962173 版权声明:本文为博主原创文章,未经博主允许不得转载。...

Android逆向之旅---基于对so中的section加密技术实现so加固

一、前言好长时间没有更新文章了,主要还是工作上的事,连续加班一个月,没有时间研究了,只有周末有时间,来看一下,不过我还是延续之前的文章,继续我们的逆向之旅,今天我们要来看一下如何通过对so加密,在介绍...

【编程开发】浅谈公开密钥加密技术

好吧,阮一峰大神比我写的好:http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html 1.为什么要用公开密...

iOS开发常用的加密技术

iOS开发常用的加密技术我胡汉三又回来了啦!时隔几月没有更博客了,我自己都受不鸟自己啦。在这几个月里经历了很多杂七杂八的事儿,不过话说回来,再怎么忙都不应该中断学习的步伐,再怎么忙都不能成为博客停更的...
  • dhfsh
  • dhfsh
  • 2017年03月07日 14:30
  • 103
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android开发 加密技术
举报原因:
原因补充:

(最多只允许输入30个字)