Copie el código de código de la siguiente manera:
clase pública MD5Check {
/**
* La combinación de cadena de contraseña predeterminada se usa para convertir bytes a caracteres hexadecimales. Apache usa esta combinación predeterminada para verificar la exactitud de los archivos descargados.
*/
carácter protegido hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a' , 'b', 'c', 'd', 'e', 'f' };
MessageDigest protegido messagedigest = nulo;
{
intentar {
mensajedigest = MessageDigest.getInstance("MD5");
} captura (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
cadena pública getFileMD5String (archivo de archivo) lanza IOException {
InputStream fis;
fis = nuevo FileInputStream(archivo);
byte[] buffer = nuevo byte[1024];
int numRead = 0;
while ((numRead = fis.read(buffer)) > 0) {
messagedigest.update(buffer, 0, numRead);
}
fis.cerrar();
return bufferToHex(messagedigest.digest());
}
cadena pública getFileMD5String (InputStream in) lanza IOException {
byte[] buffer = nuevo byte[1024];
int numRead = 0;
mientras ((numRead = in.read(buffer)) > 0) {
messagedigest.update(buffer, 0, numRead);
}
cercar();
return bufferToHex(messagedigest.digest());
}
buffer de cadena privada a hexadecimal (byte bytes []) {
devolver bufferToHex(bytes, 0, bytes.longitud);
}
buffer de cadena privada a hex (byte bytes [], int m, int n) {
StringBuffer stringbuffer = nuevo StringBuffer(2 * n);
int k = metro + norte;
para (int l = m; l < k; l++) {
appendHexPair(bytes[l], stringbuffer);
}
devolver stringbuffer.toString();
}
appendHexPair vacío privado (byte bt, StringBuffer stringbuffer) {
char c0 = hexDigits[(bt & 0xf0) >> 4];//Obtiene la conversión digital de los 4 bits superiores del byte
// Es un desplazamiento lógico a la derecha y los bits de signo se desplazan hacia la derecha juntos. Aquí no se encuentra ninguna diferencia entre los dos símbolos.
char c1 = hexDigits[bt & 0xf] // Obtener la conversión digital de los 4 bits inferiores del byte
stringbuffer.append(c0);
stringbuffer.append(c1);
}
}