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