import java.util.* ;
import java.sql.*;
import java.io.*;
import java.security.*;
                                                                                                                             
class Digest
{
           public static long getCurrentTime() {
                java.util.Date date=Calendar.getInstance().getTime();
          Timestamp a=new Timestamp(date.getTime());
          long currentTime=Calendar.getInstance().getTimeInMillis();
           //     System.out.println("Time: "+currentTime);
                                                                                                                             
                return currentTime;
        }
                                                                                                                             
                                                                                                                             
        public static void main(String args[]) {
		     	String msg="Kanwal Rekhi School of Information Technology, IIT Bombay";
			long start,end;
			try{
				MessageDigest md = MessageDigest.getInstance("SHA-1");
				MessageDigest md5 = MessageDigest.getInstance("MD5");
	     			md.update(msg.getBytes());
				md5.update(msg.getBytes());
				 start=getCurrentTime();
     				byte[] digest = md.digest();
				 end=getCurrentTime();

				System.out.println("String: "+msg+"\nHash in SHA-1: "+(new String(digest)));
				digest = md5.digest();
                                System.out.println("String: "+msg+"\nHash in MD5: "+(new String(digest)));				                                                                                                                             
			 System.out.println( "MSg_Size   SHA1_time   MD5_time" ) ;

				/*****Time Calc*/
				int i,m=0;
                                StringBuffer ptext=new StringBuffer(4096);
                               	StringBuffer ts=new StringBuffer(128);
                                ts.append("RAMA");
                                while(ts.length()<128)//making a message of 128B length
                                {
                                                ts.append(ts.toString());
                                 }
                                for(int mSize=0;mSize<=4096;) {
					md.reset();
					md5.reset(); 
					System.out.print(""+mSize);
					 msg=new String(ptext);
                            		  start=getCurrentTime();
					 md.update(msg.getBytes());
					 digest = md.digest();
					end=getCurrentTime();
					System.out.print("      "+(end-start));
                                          start=getCurrentTime();
					md5.update(msg.getBytes());
                                         digest = md5.digest();
                                        end=getCurrentTime();
                                        System.out.println("      "+(end-start));

					 ptext.append(ts);
                                         mSize=ptext.length();
				}//for msize
			}
			 catch(Exception e){
                        e.printStackTrace();
	                }
        }
}
                                         
