mirror of
https://github.com/MillironX/nf-core_modules.git
synced 2024-09-23 00:22:04 +00:00
35 lines
1 KiB
Groovy
35 lines
1 KiB
Groovy
|
import java.security.MessageDigest
|
||
|
private static String getMD5(File file) throws IOException
|
||
|
{
|
||
|
// https://howtodoinjava.com/java/io/how-to-generate-sha-or-md5-file-checksum-hash-in-java/
|
||
|
//Get file input stream for reading the file content
|
||
|
FileInputStream fis = new FileInputStream(file);
|
||
|
|
||
|
//Create byte array to read data in chunks
|
||
|
byte[] byteArray = new byte[1024];
|
||
|
int bytesCount = 0;
|
||
|
|
||
|
//Read file data and update in message digest
|
||
|
def digest = MessageDigest.getInstance("MD5")
|
||
|
while ((bytesCount = fis.read(byteArray)) != -1) {
|
||
|
digest.update(byteArray, 0, bytesCount);
|
||
|
};
|
||
|
|
||
|
//close the stream; We don't need it now.
|
||
|
fis.close();
|
||
|
|
||
|
//Get the hash's bytes
|
||
|
byte[] bytes = digest.digest();
|
||
|
|
||
|
//This bytes[] has bytes in decimal format;
|
||
|
//Convert it to hexadecimal format
|
||
|
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 hash
|
||
|
return sb.toString();
|
||
|
}
|