mirror of
https://github.com/MillironX/nf-core_modules.git
synced 2024-12-23 19:48:16 +00:00
34 lines
1 KiB
Groovy
34 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();
|
|
}
|