0% ont trouvé ce document utile (0 vote)
244 vues4 pages

Create A Checksum en Java

Transféré par

khalidihajar
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
244 vues4 pages

Create A Checksum en Java

Transféré par

khalidihajar
Copyright
© Attribution Non-Commercial (BY-NC)
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

/* * utilis pour crer un fichier. Chk qui contient un checksum MD5 d'un fichier donn.

* Le mme programme est utilis pour vrifier si un fichier a t modifi en regardant * gnr prcdemment. *Chk et compare avec la somme de contrle en cours du fichier donn. */ package Dao; import java.security.*; import java.io.*; public class Checksum { // // returns 0 error // 1 ok (create) // 1 same (check) // 2 different (check) // public static void main(String args[]) { if (args.length == 2) { if (args[0].equals("create")) { System.exit(new Checksum().create(args[1])); } else if (args[0].equals("check")) { System.exit(new Checksum().check(args[1])); } } else { System.out.println("Usage : java Checksum create [filename]\n"+ " java Checksum check [filename]"); } } public int create(String filename){ try { byte[] chk = createChecksum(filename); File f = new File(filename + ".chk"); OutputStream os = new FileOutputStream(f); os.write(chk); os.close(); return 1; } catch(Exception e) { e.printStackTrace(); return 0; } } public int check(String filename){

int rc = 0; try { byte[] chk1 = createChecksum(filename); byte[] chk2 = new byte[chk1.length]; File f = new File(filename + ".chk"); InputStream is = new FileInputStream(f); is.read(chk2); if (new String(chk2).equals(new String(chk1))) { System.out.println("Same!"); rc = 1; } else { System.out.println("Different!"); rc = 2; } is.close(); return rc; } catch(Exception e) { e.printStackTrace(); return rc; } } public byte[] createChecksum(String filename) throws Exception{ InputStream fis = new FileInputStream(filename); byte[] buffer = new byte[1024]; MessageDigest complete = MessageDigest.getInstance("MD5"); int numRead; do { numRead = fis.read(buffer); if (numRead > 0) { complete.update(buffer, 0, numRead); } } while (numRead != -1); fis.close(); return complete.digest(); } }

/*Condenss MD5 ont t largement utiliss dans le monde du logiciel pour fournir une * certaine assurance que le fichier tlcharg n'a pas t modifi. Un utilisateur * peut comparer une somme MD5 avec publie le checksum d'un fichier tlcharg.*/ package Dao; import java.io.*; import java.security.MessageDigest; public class MD5Checksum { public static byte[] createChecksum(String filename) throws Exception { InputStream fis = new FileInputStream(filename); byte[] buffer = new byte[1024]; MessageDigest complete = MessageDigest.getInstance("MD5"); int numRead; do { numRead = fis.read(buffer); if (numRead > 0) { complete.update(buffer, 0, numRead); } } while (numRead != -1); fis.close(); return complete.digest(); } // see this How-to for a faster way to convert // a byte array to a HEX string public static String getMD5Checksum(String filename) throws Exception { byte[] b = createChecksum(filename); String result = ""; for (int i=0; i < b.length; i++) { result += Integer.toString( ( b[i] & 0xff ) + 0x100, 16).substring( 1 ); } return result; } public static void main(String args[]) { try { System.out.println(getMD5Checksum("C:\\Users\\hajar\\Desktop\\index.jpg")); // output : // 0bb2827c5eacf570b6064e24e0e6653b // ref : // http://www.apache.org/dist/ // tomcat/tomcat-5/v5.5.17/bin // /apache-tomcat-5.5.17.exe.MD5 // 0bb2827c5eacf570b6064e24e0e6653b *apache-tomcat-5.5.17.exe } catch (Exception e) { e.printStackTrace(); } } }

/*MD5 (Message-Digest Algorithm 5) est largement utilis fonction de hachage * cryptographique avec une valeur de 128 bits de hachage. Spcifi dans la * RFC 1321, * MD5 fait partie d'une srie d'algorithmes Message Digest conus par le professeur * Ronald Rivest du MIT (Rivest, 1994). Aujourd'hui MD5 a t employ dans une grande * varit d'applications de scurit, et est galement dans le monde entier permet * de vrifier l'intgrit des fichiers */ package Dao; import java.math.BigInteger; import java.security.*; import sun.security.provider.MD5; public class MD5teste { public static String getMD5(String input) { try { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] messageDigest = md.digest(input.getBytes()); BigInteger number = new BigInteger(1, messageDigest); String hashtext = number.toString(16); // Now we need to zero pad it if you actually want the full 32 chars. while (hashtext.length() < 32) { hashtext = "0" + hashtext; } return hashtext; } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); } } public static void main(String[] args) throws NoSuchAlgorithmException { System.out.println(getMD5("index.jpg")); System.out.println(""); System.out.println(getMD5("t.txt")); } }

Vous aimerez peut-être aussi