Java - Comprobación de Integridad en Ficheros con Java

 
Vista:
sin imagen de perfil

Comprobación de Integridad en Ficheros con Java

Publicado por Daniel (6 intervenciones) el 08/10/2017 20:10:10
Buenas, me gustaría comprobar la integridad de un archivo a través de un directorio, es decir, para verificar la integridad de un archivo, sólo hay que comparar el hash del archivo original con el hash del archivo descargado, si ambos son iguales, se puede deducir que el archivo descargado no ha sido alterado y es idéntico al original.

He encontrado el siguiente código por internet:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
public class Resumenes{
 
public static void main(String [] args){
 
//declarar funciones resumen
  try{
  MessageDigest messageDigest2 = MessageDigest.getInstance("SHA"); // Inicializa SHA-1
 
  //leer fichero byte a byte
 
     try{
        InputStream archivo = new FileInputStream( args[0] );
        byte[] buffer = new byte[1];
        int fin_archivo = -1;
        int caracter;
 
        caracter = archivo.read(buffer);
 
        while( caracter != fin_archivo ) {
 
           messageDigest2.update(buffer);// Pasa texto claro a la función resumen
           caracter = archivo.read(buffer);
        }
 
        archivo.close();
        byte[] resumen2 = messageDigest2.digest(); // Genera el resumen SHA-1
 
        //Pasar los resumenes a hexadecimal
 
        String m = "";
        for (int i = 0; i < resumen2.length; i++)
        {
           m += Integer.toHexString((resumen2[i] >> 4) & 0xf);
           m += Integer.toHexString(resumen2[i] & 0xf);
        }
        System.out.println("Resumen SHA-1: " + m);
 
 
     }
     //lectura de los datos del fichero
     catch(java.io.FileNotFoundException fnfe) {}
     catch(java.io.IOException ioe) {}
 
  }
  //declarar funciones resumen
  catch(java.security.NoSuchAlgorithmException nsae) {}
 
  }
}
Pero claro cuando ejecuto me salta el "Debug" se que no le estoy pasando el directorio, pero esa es mi duda, ¿donde tengo que pasarlo? Por ejemplo este es el directorio que quiero pasarle para que me devuelva su código Hash. C:\Users\PC\Desktop\Prueba\SSII\PC1\Hash\Mensaje.txt

Esto lo estoy realizando en Eclipse.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder