//George Koutsogiannakis //2/13/2007 import java.security.MessageDigest; import java.io.FileInputStream; public class createDigest { public static void main(String[] args) { byte[] mdbytes=new byte[1024]; String datafile="createDigest.java"; MessageDigest md=null; MessageDigest md1=null; try { md=MessageDigest.getInstance("SHA1"); FileInputStream fis=new FileInputStream(datafile); byte[] dataBytes=new byte[1024]; //read returns the number of bytes read. if n=-1 there are no more bytes int n=fis.read(dataBytes); //1024 bytes read and placed in the array System.out.println(n); System.out.println(dataBytes[0]); System.out.println(dataBytes[1023]); while(n>0) { //compute digest of bytes md.update(dataBytes, 0, n); n=fis.read(dataBytes); System.out.println("Byte Number"+" "+n); } mdbytes=md.digest(); fis.close(); }//end of try catch(Exception e) {} for(int i=0; i<=mdbytes.length-1; i++) { System.out.println("First Digest is:"+" "+mdbytes[i]); } //let 's do it over an dcraete another digest of the same data //then compare the two byte[] mdbytes1=new byte[1024]; String datafile1="createDigest.java"; try { md1=MessageDigest.getInstance("SHA1"); FileInputStream fis1=new FileInputStream(datafile1); byte[] dataBytes1=new byte[1024]; int m=fis1.read(dataBytes1); while(m>0) { md1.update(dataBytes1, 0, m); m=fis1.read(dataBytes1); } mdbytes1=md1.digest(); fis1.close(); }//end of try catch(Exception e){} for (int i=0; i<=mdbytes1.length-1; i++) { System.out.println("Second Digest is:"+" "+mdbytes1[i]); } if(md1.isEqual(mdbytes, mdbytes1)) { System.out.println("The two digests are equal"); } else System.out.println("The two digests are not equal"); }//end of main }//end of class /*---------- Interpreter ---------- 1024 Byte Number 839 Byte Number -1 First Digest is: -51 First Digest is: 56 First Digest is: -75 First Digest is: 110 First Digest is: -20 First Digest is: -40 First Digest is: -22 First Digest is: 102 First Digest is: 71 First Digest is: 116 First Digest is: 89 First Digest is: -120 First Digest is: -122 First Digest is: 64 First Digest is: 4 First Digest is: 71 First Digest is: -41 First Digest is: -36 First Digest is: -70 First Digest is: 44 Second Digest is: -51 Second Digest is: 56 Second Digest is: -75 Second Digest is: 110 Second Digest is: -20 Second Digest is: -40 Second Digest is: -22 Second Digest is: 102 Second Digest is: 71 Second Digest is: 116 Second Digest is: 89 Second Digest is: -120 Second Digest is: -122 Second Digest is: 64 Second Digest is: 4 Second Digest is: 71 Second Digest is: -41 Second Digest is: -36 Second Digest is: -70 Second Digest is: 44 The two digests are equal Normal Termination Output completed (0 sec consumed). If the first digest was created by Jane and sent to Mike Mike created the second digest and compared it to the one sent by Jane*/