MD5加密

     java.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,即生成散列码,通过数据
向的哈希函数,接收任意长度的数据生成固定长度的哈希值,MD5就是其中的一种加密算法
   一、MD5简介
     任何数据经过MD5加密后值是唯一的,因此可以用来作为数据的唯一标识
     MD5特点:
	压缩性:任意长度的数据都会被经过MD5加密后都是长度固定
	抗修改性:对源数据有任何改动,最后得到的MD5值都会有很大的区别
	强抗碰撞:已知原数据及其MD5值,那么再找一个具有相同MD5值的数据(伪造数据)是很难的
   二、使用
	1.通过MessageDigest类得到加密器
	2.把要加密的数据流传入加密器
        3.调用.digest方法,返回MD5值(32位字符)
	下面看一个例子
	
<span style="white-space:pre">			</span>//得到加密器
			MessageDigest digest = MessageDigest.getInstance("MD5");
			//把文件转换为流
			FileInputStream fis = new FileInputStream(file);
			int len =0;
			byte[] buffer = new byte[1024];
			while((len=fis.read(buffer))!=-1){
				//加密器读取流文件
				digest.update(buffer, 0, len);
			}
			//返回字节数组
			byte[] result = digest.digest();
			StringBuilder sb = new StringBuilder();
			for(byte b:result){
				int number = b&0xff;
				String str = Integer.toHexString(number);
				if(str.length()==1){
					sb.append("0");
				}
				sb.append(str);
			}
			System.out.println(sb.toString());

	通过对自己数组遍历,转换为十六进制,最后拼接为字符串
    三、应用
	1.对apk的加密,利用MD5加密后的唯一性可以用来查找用户手机上一些非法和恶意的软件
	2.让大容量信息在数字签名软件签署私人密钥前被压缩成一种保密格式
	3.用户密码的保护,把明文密码加密后可以有效防止用户密码被盗的危险


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章