What is the best way to create a SHA-1 for a very large file in pure Java6? How to implement this method:
public abstract String createSha1(java.io.File file
public static String computeFileSHA1( File file ) throws IOException
{
String sha1 = null;
MessageDigest digest;
try
{
digest = MessageDigest.getInstance( "SHA-1" );
}
catch ( NoSuchAlgorithmException e1 )
{
throw new IOException( "Impossible to get SHA-1 digester", e1 );
}
try (InputStream input = new FileInputStream( file );
DigestInputStream digestStream = new DigestInputStream( input, digest ) )
{
while(digestStream.read() != -1){
// read file stream without buffer
}
MessageDigest msgDigest = digestStream.getMessageDigest();
sha1 = new HexBinaryAdapter().marshal( msgDigest.digest() );
}
return sha1;
}