private String hashDocument( String fileName )
{
byte[ ] fileBytes = new byte[ 256 ];
int bytesRead = 0;
String checksumString = "";
try
{
MessageDigest digest = MessageDigest.getInstance( "MD5" );
FileInputStream fis = new FileInputStream( tempPath +
fileName );
bytesRead = fis.read( fileBytes );
while ( bytesRead > 0 )
{
bytesRead = fis.read( fileBytes );
digest.update( fileBytes, 0, bytesRead );
}
byte[ ] checksum = digest.digest( );
StringBuffer hexChecksum = new StringBuffer( );
for ( int i = 0; i < checksum.length; i++ )
{
// Convert to a positive value between 0 and 255
int intVal = (int) ( 0x000000ff & checksum[ i ] );
hexChecksum.append( hexCodes[ intVal ] );
}
checksumString = hexChecksum.toString( );
}
catch ( Exception e )
{
log.warn( "Failed to calculate MD5 checksum for document: "
+ fileName + ".", e );
}
return checksumString;
}