/** * Written by SaEeD * Description : Library to return value of Md5 CheckSum for given file - This library can be used as Thread */ package mypack; import java.io.*; import java.security.MessageDigest; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JProgressBar; import javax.swing.JTextField; public class MD5CheckSum extends Thread implements Runnable { private static JProgressBar myBar = null; public static long position; private static JTextField test = null; @SuppressWarnings("static-access") public MD5CheckSum(JProgressBar mBar, JTextField mine) { this.myBar = mBar; this.test = mine; } @Override public void run(){ } public static byte[] createCheckSum(String filename) throws Exception { position =0; InputStream fis = new FileInputStream(filename); File file_d = new File(filename); long fileSize = file_d.length(); byte [] buffer = new byte[1024]; MessageDigest complete = MessageDigest.getInstance("MD5"); int numRead; do{ numRead = fis.read(buffer); position+= numRead; if(numRead > 0){ //position +=1024; long Value = (position * 100)/ fileSize; myBar.setValue((int)Value); complete.update(buffer, 0, numRead); // System.out.println("File Size: " + fileSize); // System.out.println("Current Postion: " + position); // System.out.println("%" + Value + " Completed."); } }while(numRead != -1); fis.close(); System.out.println("[+]Creating MD5 Digest has been completed."); return complete.digest(); } public static String getMD5CheckSum(String filename){ String result = ""; try { byte[] b = createCheckSum(filename); for (int i = 0; i < b.length; i++) { result += Integer.toString((b[i] & 0xff) + 0x100, 16).substring(1); } } catch (Exception ex) { Logger.getLogger(MD5CheckSum.class.getName()).log(Level.SEVERE, null, ex); } test.setText(result); return result; } }