package gehaiming;</p><p>import java.io.FileInputStream;<br />import java.security.MessageDigest;</p><p>public class MD5 {<br />public static void main(String[] args) throws Exception{<br />if(args.length!=1){<br />System.out.println("file name need!");<br />System.exit(0);<br />}<br />FileInputStream in=new FileInputStream(args[0]);<br />int available=in.available();<br />byte[] buf=new byte[available];<br />in.read(buf);</p><p>String result="";<br />MessageDigest md=MessageDigest.getInstance("MD5");<br />md.update(buf);<br />byte[] rs=md.digest();<br />for(int i=0;i<rs.length;i++){<br />String tmp=Integer.toHexString((int)rs[i]);<br />result+=format(tmp);<br />}<br />System.out.println(result);<br />}</p><p>//因為toHexString返回的字串的長度不一,所有用此函數進行一下格式化<br />public static String format(String str){<br />int len=str.length();<br />if(len==2){<br />return str;<br />}else if(len==1){<br />return "0"+str;<br />}else if(len>2){<br />return str.substring(len-2,len);<br />}//不知道有沒有第四情況(len==0),呵呵行這樣吧<br />return "";<br />}<br />}<br />
當然現在有好多用java實現的md5,但我個人感覺只要j2se標準類庫裡有,直接用就可以了,今天我就自個用標準類庫搞了一個實用的md5驗證程式。這個程式簡單得再不能簡單了,但它卻非常的實用,可以用來驗證從互連網下載的檔案。
關於md5大家可以參考:http://www.ietf.org/rfc/rfc1321.txt