Java has functionality for calculating SHA-1 and MD5 checksums but not for displaying them as the 40-char hex strings I’m used to. I want to update my photo reorganizer so it doesn’t create duplicate files so I figured this would be a handy thing to write. I wrote one for MD5 a while ago (the only code you really need to write is the byte-array-to-hex-string converter) but I guess I lost it. Anyway, here it is.
Edit: Rather than paste a huge useless block of code here, I put it on github: https://github.com/evandhoffman/Java-SHA-1-Hasher.
Output appears to match that of the command-line utility:
[evan@EvanMBP bin]$ java -jar SHA1.jar ~/text.txt 3bbed58697cc1775e8fadcf1324e26d4d092e7c2 /Users/evan/text.txt [evan@EvanMBP bin]$ shasum ~/text.txt 3bbed58697cc1775e8fadcf1324e26d4d092e7c2 /Users/evan/text.txt
It’s not as fast as shasum (as I expected) but that may partially be due to reading data in 1k chunks.