Java 檔案唯一性識別碼 MD5

Java 如何產生檔案的 MD5 碼,

相同檔案名稱但內容有異動過, 或者不同檔案,

都會產生不同的 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;
}
Related Posts Plugin for WordPress, Blogger...