import java.io.*;
import java.security.*;
import java.util.* ;
import java.sql.*;

class Digest{
    String filename;
    FileWriter output;
    public Digest(String filename){
    try{
        this.filename=filename;
        System.out.println(filename);
         output = new FileWriter("/home/ashish/testfiles/digestoutput",true);
       output.write("filename is :"+filename+"\n\n");
output.write("filesize is :"+new File(filename).length()+"bytes\n\n");
       
        System.out.println("file opened");
    MessageDigest MD = MessageDigest.getInstance("MD5");
	    MessageDigest SHA = MessageDigest.getInstance("SHA-256");

	    File filetodigest= new File(filename);
            FileInputStream inputFile=new FileInputStream(filetodigest);
	    long filelength= filetodigest.length();
	    byte[] buffer= new byte[(int)filelength];

	    byte[] hashSHA = new byte[256];
	    byte[] hashMD5 = new byte[256];
	    
	    inputFile.read(buffer);
            //System.out.println("buffer is "+buffer);
	    long start=getCurrentTime();
            System.out.println("starttime is "+start);
	    hashSHA=SHA.digest(buffer);
	    long end=getCurrentTime();
System.out.println("endtime is "+end);
	    long timeSHA= end-start;
output.write("Timetaken for SHA-1 digest is: "+timeSHA+"\n\n");
	    hashMD5=MD.digest(buffer);
	    start=getCurrentTime();
	    long timeMD5=start-end;
output.write("Timetaken for MD5 digest is: "+timeMD5+"\n\n");
	    inputFile.close();
            output.close();
	    
    System.out.println("MessageSize(bytes)==> "+ filelength+"\tMD5(ms)==> "+timeMD5+"\tSHA(ms)==> "+timeSHA);
    }catch(Exception e){
    System.out.println("error" + e);}
    }
    public static long getCurrentTime()
    {
	java.util.Date date=Calendar.getInstance().getTime();
	Timestamp a=new Timestamp(date.getTime()); 
	long currentTime=Calendar.getInstance().getTimeInMillis();
	return currentTime;
    }

    public static void main ( String[] args){
        String filenames[]= {"/home/ashish/testfiles/Digest.java","/home/ashish/testfiles/store.t","/home/ashish/testfiles/amsn.png","/home/ashish/testfiles/store.t"};
	for (int i=0;i<4;i++){
        new Digest(filenames[i]);
        }
	 }
}
