// Updates: 2004.03.24 import java.security.*; import java.math.*; import java.io.*; /** * Permet de faire un hash (SHA ou MD5) d'un fichier fourni en paramètre. */ public class TestHash { final static String ALGO = "SHA"; // SHA or MD5 public static void main(String[] args) { try { byte[] data = readFile(args[0]); MessageDigest md = MessageDigest.getInstance(ALGO); md.update(data); byte[] digest = md.digest(); System.out.println("Algo: " + ALGO + " (" + digest.length + " bytes)"); for (int i = 0; i < digest.length; i++) { System.out.print(digest[i] + " "); } System.out.println("\nDecimal: " + new BigInteger(digest)); System.out.println("Hexadecimal: " + new BigInteger(digest).toString(16)); } catch (Exception e) { System.out.println(e); } } private static byte[] readFile(String filename) { try { RandomAccessFile raf = new RandomAccessFile(filename, "r"); byte[] data = new byte[(int)raf.length()]; raf.readFully(data); raf.close(); return data; } catch (FileNotFoundException e) {} catch (IOException e) {} return null; } }