MD5加密的实现

匿名 (未验证) 提交于 2019-12-03 00:22:01

MD5(Message-Digest Algorithm 5)的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。

一、将文件通过流的方式转化为二进制,再计算该文件的MD5值。在实际运用中,加密和解密的方法最好一样。

package zju.give.util;  import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException;  //和MES统一的MD5方法 public class MD5toHex { 	//MD5值校验用    toHex方法 		public static String toHex(byte[] bytes) { 			final char[] HEX_DIGITS = "0123456789abcdef".toCharArray(); 			StringBuilder ret = new StringBuilder(bytes.length*2); 			for(int i=0; i<bytes.length; i++){ 				ret.append(HEX_DIGITS[(bytes[i] >>4) & 0x0f]); 				ret.append(HEX_DIGITS[bytes[i] & 0x0f]);	 			} 			return ret.toString(); 		} 		 		//测试MD5 		public static void main(String[] args) { 			 			byte[] bytes = null; 			try { 				FileInputStream in = new FileInputStream("D:\\test3.txt"); 				BufferedInputStream is = new BufferedInputStream(in); 				bytes = new byte[in.available()]; 				int len = in.available(); 				int offset = 0; 				int read = 0; 				while (offset < len && (read = is.read(bytes, offset, len - offset)) >= 0) { 					offset += read; 				} 				is.close(); 				in.close(); 			} catch (FileNotFoundException e) { 				e.printStackTrace(); 			} catch (IOException e) { 				e.printStackTrace(); 			} 			 			//文件内容必须根据原始的文件二进制进行转换 			String fileComment = new String(new sun.misc.BASE64Encoder().encodeBuffer(bytes)); 			System.out.println(fileComment); 			 			try { 				MessageDigest md5New = MessageDigest.getInstance("MD5"); 				bytes = md5New.digest(bytes); 			} catch (NoSuchAlgorithmException e) {  				e.printStackTrace(); 			} 			String md = MD5toHex.toHex(bytes); 			System.out.println(md); 		} }   

文章来源: MD5加密的实现
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!