关闭

Android开发 加密技术

标签: Android加密技术
393人阅读 评论(0) 收藏 举报
分类:

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

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){}

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










0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15714次
    • 积分:279
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:14篇
    • 译文:0篇
    • 评论:3条
    文章存档
    最新评论