www.pudn.com > MD5.rar > NewFileMD5.java


package com.md5.chen; 
 
import java.security.*; 
import java.io.*; 
 
 
 
//计算一个文件输入流的MD5 
public class NewFileMD5 
{ 
	 
 
	public static void main(String[] args) 
	{ 
		String PATH = null; 
		String result = ""; 
 
		BufferedReader reader = new BufferedReader(new InputStreamReader( 
				System.in)); 
		System.out.println("输入文件路径:"); 
		try 
		{ 
			PATH = reader.readLine();// 将主目录路径保存再PATH中 
 
		} catch (IOException e) 
		{ 
			e.toString(); 
		} 
 
		try 
		{ // 生成MessageDigest对象MD 
			MessageDigest m = MessageDigest.getInstance("MD5"); 
			FileInputStream fin = new FileInputStream(PATH); 
			DigestInputStream din = new DigestInputStream(fin, m); 
 
			while (din.read() != -1) 
			{ 
				; 
			} 
			// 计算MD5 
			byte s[] = m.digest(); 
			for (int i = 0; i < s.length; i++) 
			{ 
				result += Integer.toHexString((0x000000ff & s[i]) | 0xffffff00) 
						.substring(6); 
			} 
		} catch (Exception e) 
		{ 
			e.toString(); 
		} 
		System.out.println("MD5:" + result); 
 
	} 
}