19 package org.sleuthkit.datamodel;
21 import java.io.IOException;
22 import java.math.BigInteger;
23 import java.security.MessageDigest;
24 import java.security.NoSuchAlgorithmException;
25 import java.util.logging.Level;
26 import java.util.logging.Logger;
27 import java.io.InputStream;
46 Logger logger = Logger.getLogger(
HashUtility.class.getName());
49 MessageDigest md = MessageDigest.getInstance(
"md5");
50 int len = in.read(buffer);
52 md.update(buffer, 0, len);
53 len = in.read(buffer);
55 byte[] hash = md.digest();
56 BigInteger bigInt =
new BigInteger(1, hash);
57 hashText = bigInt.toString(16);
59 while (hashText.length() < 32) {
60 hashText =
"0" + hashText;
62 file.getSleuthkitCase().setMd5Hash(file, hashText);
63 }
catch (NoSuchAlgorithmException ex) {
64 logger.log(Level.WARNING,
"No algorithm known as 'md5'", ex);
66 logger.log(Level.WARNING,
"Error updating content's md5 in database", ex);
82 return md5.toLowerCase().equals(
"d41d8cd98f00b204e9800998ecf8427e");
static String calculateMd5(AbstractFile file)
static boolean isNoDataMd5(String md5)
static final int BUFFER_SIZE