Generación de SHA-256, MD5 y CRC32

 

Instalar la versión de Java JDK1.8.0_172 (recomendada).

 

Ejemplo para la generación del SHA-256 y MD5

import java.security.MessageDigest;

import javax.xml.bind.DatatypeConverter;

 

public String algoritmoHash(byte[] pArchivo, String algorithm) {

String hashValue = "";

try {

MessageDigest messageDigest = MessageDigest.getInstance(algorithm);

       messageDigest.update(pArchivo);

       byte[] digestedBytes = messageDigest.digest();

hashValue = DatatypeConverter.printHexBinary(digestedBytes).toLowerCase();

}

catch (Exception e) {

System.out.println("Error generando Hash");

}

return hashValue;

}

 

 

Ejemplo para la generación del CRC32

import java.util.zip.Checksum;

import java.util.zip.CRC32;

 

public String calCrc32(byte[] data) {

Checksum checksum = new CRC32();

checksum.update(data, 0, data.length);

long checksumValue = checksum.getValue();

String hex = Long.toHexString(checksumValue).toUpperCase();

while (hex.length() < 8) {

hex = "0" + hex;

}

return hex;

}

 

 

Ejemplo de consumo de los métodos:

Ejemplo para obtener el MD5

public String obtenerMD5(byte[] archivo) {

String vHash = algoritmoHash(archivo,"MD5");

       return vHash;

}

 

Ejemplo para obtener el SHA256

public String obtenerSHA2(byte[] archivo) {

String vSha2 = algoritmoHash(archivo,"SHA-256");

       return vSha2;

}

 

 

Ejemplo para obtener el CRC32

public String obtenerCRC32(byte[] archivo) {

       String vCrc = calCrc32(archivo);

return vCrc;

}