Advertisement
Chiddix

FileHashUtility

Mar 23rd, 2014
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.85 KB | None | 0 0
  1. package me.rabrg.thor.utility;
  2.  
  3. import java.io.IOException;
  4. import java.io.RandomAccessFile;
  5. import java.security.MessageDigest;
  6. import java.security.NoSuchAlgorithmException;
  7.  
  8. public final class FileHashUtility {
  9.  
  10.     private final MessageDigest digest;
  11.  
  12.     private FileHashUtility() throws NoSuchAlgorithmException {
  13.         digest = MessageDigest.getInstance("SHA-256");
  14.     }
  15.  
  16.     public byte[] hash(final String directory) throws IOException {
  17.         try (final RandomAccessFile file = new RandomAccessFile(directory, "r")) {
  18.             final long length = file.length();
  19.             if (length != (int) length) {
  20.                 throw new IllegalArgumentException("Specified file is too large");
  21.             }
  22.             final byte[] data = new byte[(int) length];
  23.             file.readFully(data);
  24.  
  25.             digest.update(data);
  26.             final byte[] hash = digest.digest();
  27.             digest.reset();
  28.             return hash;
  29.         }
  30.     }
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement