相同檔案名稱但內容有異動過, 或者不同檔案,
都會產生不同的 MD5 碼,
也可藉由此判斷檔案是否已存在或異動過,
參考程式碼, 如下 :
程式碼
/* ====================================================== 功用 : 取得檔案 MD5 參數 : vFile : 來源檔 (包含路徑) 傳回 : 若執行成功, 則傳回 MD5 碼 若執行失敗, 則傳回 Error 錯誤碼 ====================================================== */ public static String getFileMD5( String vFile ) { // MD5 碼 String md5Code = ""; try { File f1 = new File( vFile ); if( f1.exists() ) { // 取得檔案的 MD5 InputStream fis = new FileInputStream(vFile); byte[] buffer = new byte[1024]; java.security.MessageDigest complete = java.security.MessageDigest.getInstance("MD5"); int numRead; do { numRead = fis.read(buffer); if (numRead > 0) { complete.update(buffer, 0, numRead); } } while (numRead != -1); fis.close(); // byte[] 轉換為 HEX 字串 byte[] b = complete.digest(); for (int i=0; i < b.length; i++) { md5Code += Integer.toString( ( b[i] & 0xff ) + 0x100, 16).substring( 1 ); } } else { md5Code = "Error: " + vFile + " 檔案不存在"; } } catch( Exception e ) { md5Code = "Error: " + e.toString(); } return md5Code; }