Pessoal, fiz um método para gerar MD5 de um arquivo, porém começou a dar erro…
Não sei por que razão… eu faço um checksum no que gera o arquivo e na outra ponta que recebe o arquivo, e o MD5 está diferente. Como prova real, peguei um programa pronto que verifica o MD5 e conclusão, a ponta que recebe está gerando o Md5 certinho, mas a geradora do arquivo não…
Se alguém puder me ajudar, ficaria grato:
public static String gerarMD5sum(){
MessageDigest digest;
{
InputStream is = null;
String md5 = "";
try {
digest = MessageDigest.getInstance("MD5");
File arquivo = new File("D://dados.zip");
is = new FileInputStream(arquivo);
int size = (int) arquivo.length();
byte[] buffer = new byte[size];
int read = 0;
while ((read = is.read(buffer)) > 0) {
digest.update(buffer, 0, read);
}
md5 = new BigInteger(1, digest.digest()).toString();
System.out.println("MD5: "+md5);
return md5;
} catch (NoSuchAlgorithmException ex) {
Logger.getLogger(UtilWebService.class.getName()).log(Level.SEVERE, null, ex);
return null;
} catch (IOException ex) {
Logger.getLogger(UtilWebService.class.getName()).log(Level.SEVERE, null, ex);
return null;
} finally {
try {
is.close();
return md5;
} catch (IOException ex) {
Logger.getLogger(UtilWebService.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
}
}
}