package org.uli.sha1;
import java.io.IOException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.uli.util.FileToByteArray;
public class SHA1Sum {
public String sha1hex(byte[] bytesOfMessage) throws NoSuchAlgorithmException, IOException {
MessageDigest md = MessageDigest.getInstance("SHA1");
byte[] thedigest = md.digest(bytesOfMessage);
BigInteger bigInt = new BigInteger(1, thedigest);
String hashtext = bigInt.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;
}
static public void main(String[] args) throws Exception {
SHA1Sum sha1 = new SHA1Sum();
if (args.length <= 0) {
FileToByteArray ftba = new FileToByteArray(System.in);
System.out.println(sha1.sha1hex(ftba.getBytes()) + " " + ftba.getFilename());
} else {
for (String arg : args) {
FileToByteArray ftba = new FileToByteArray(arg);
System.out.println(sha1.sha1hex(ftba.getBytes()) + " " + ftba.getFilename());
}
}
}
}