package de.bablokb.crypto; import java.io.*; import java.security.*; import sun.misc.*; public class Digest { private static final String DEFAULT_MD = "SHA-1"; private static final int BUF_SIZE = 8192; public static void main(String[] args) throws Exception { if (args.length < 1 || args.length > 2) { usage(); System.exit(3); } String algorithm = DEFAULT_MD; if (args.length == 2) algorithm = args[1]; MessageDigest md = MessageDigest.getInstance(algorithm); FileInputStream stream = new FileInputStream(args[0]); byte[] sbuf = new byte[BUF_SIZE]; int length; while ((length=stream.read(sbuf)) != -1) md.update(sbuf,0,length); stream.close(); BASE64Encoder enc = new BASE64Encoder(); String out = enc.encode(md.digest()); System.err.println("Document fingerprint ("+algorithm+"):"); System.out.println(out); System.exit(0); } private static void usage() { System.out.println("usage: de.bablokb.crypto.Digest filename [algorithm]"); } }