How to
create checksum of a file?
To generate a hash or checksum of a file, below is the
implementation shows how do we need to read a file’s bytes in chunks and
calculate the checksum.
Code:
public String getFileChecksum(MessageDigest digest, File file) throws
IOException
{
//passing file to get FileInputStream
FileInputStream fis = new FileInputStream(file);
//create a byte array to read file content in bytes
byte[] byteArray = new byte[1024];
int bytesCount = 0;
//read the bytes of a file to update the message digest
function of MD5 algorithm
while ((bytesCount = fis.read(byteArray)) != -1) {
digest.update(byteArray,
0, bytesCount);
};
//close the stream
fis.close();
//get the checksum bytes
byte[] bytes = digest.digest();
//the bytes are in decimal format & convert them to
hexadecimal
StringBuilder sb = new StringBuilder();
for(int i=0; i< bytes.length ;i++)
{
sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
}
//return complete checksum value
return sb.toString();
}
We
can also use above method like below to generate MD5 checksum :
//Create checksum
for this file
File file = new File("c:/temp/testFile.txt");
//create instance of MD5 algorithm
MessageDigest
md5Digest = MessageDigest.getInstance("MD5");
//Get the hash/checksum
String hash =
getFileHash(md5Digest, file);
//see checksum
System.out.println(hash);
|
No comments:
Post a Comment