package gehaiming; import java.io.FileInputStream; import java.security.MessageDigest; public class MD5 { public static void main(String[] args) throws Exception{ if(args.length!=1){ System.out.println("file name need!"); System.exit(0); } FileInputStream in=new FileInputStream(args[0]); int available=in.available(); byte[] buf=new byte[available]; in.read(buf); String result=""; MessageDigest md=MessageDigest.getInstance("MD5"); md.update(buf); byte[] rs=md.digest(); for(int i=0;i<rs.length;i++){ String tmp=Integer.toHexString((int)rs[i]); result+=format(tmp); } System.out.println(result); } //因为toHexString返回的字符串的长度不一,所有用此函数进行一下格式化 public static String format(String str){ int len=str.length(); if(len==2){ return str; }else if(len==1){ return "0"+str; }else if(len>2){ return str.substring(len-2,len); }//不知道有没有第四情况(len==0),呵呵行这样吧 return ""; } } 当然现在有好多用java实现的md5,但我个人感觉只要j2se标准类库里有,直接用就可以了,今天我就自个用标准类库搞了一个实用的md5验证程序。这个程序简单得再不能简单了,但它却非常的实用,可以用来验证从互联网下载的文件。 关于md5大家可以参考:http://www.ietf.org/rfc/rfc1321.txt