Foros del Web » Programando para Internet » PHP »

problemas al calcular md5 de un fichero

Estas en el tema de problemas al calcular md5 de un fichero en el foro de PHP en Foros del Web. Hola a todos. Tengo el siguiente problema: Calculo el md5 de un fichero con php y luego con java y obtengo valores distintos. Si calculo ...
  #1 (permalink)  
Antiguo 12/07/2004, 05:24
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 1 mes
Puntos: 7
Sonrisa problemas al calcular md5 de un fichero

Hola a todos. Tengo el siguiente problema:

Calculo el md5 de un fichero con php y luego con java y obtengo valores distintos. Si calculo el md5 de un string me salen los mismos valores pero con ficheros no.

Al no tener una version del apache actual no puedo utilizar la funcion esa que ya existe en php para calcular el md5 de un fichero (se llama me parece md5_file() ).
Lo que hago entonces es aplicar esta otra funcion que he visto en la pagina oficial para calcular el md5 de un fichero:

function md5_of_file($inFile) {
if (file_exists($inFile)) {
$fd = fopen($inFile, 'r');
$fileContents = fread($fd, filesize($inFile));
fclose ($fd);
return md5($fileContents);
} else {
return false;
}

}

Si os fijais lee de un golpe el contenido del fichero y luego calcula el md5 como si fuera un string.

En java lo que hace es ir leyendo poco a poco el fichero.

¿podrá estar entonces el problema en que al leer en java el fichero poco a poco se obtiene otro valor de md5 que si lo lees de golpe el fichero como se hace en la funcion de arriba?

Espero que alguien me pueda echar una mano porque estoy perdido en este tema.

Un saludo
  #2 (permalink)  
Antiguo 12/07/2004, 09:04
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

La unica forma de que generen distintos md5 es que las cadenas sean distintas. Puede ser que por configuracion la cadena que lees del fichero en PHP no sea igual que el contenido que lee Java.

Por ejemplo, la directiva magic_quotes_runtime puede hacer que se escape el contenido leido del fichero, haciendo que el contenido leido sea igual a aplicar addslashes() al cantenido real. Tambien si el servidor es windows y el fichero binario, al indicar en el fopen solo 'r' puede estar abriendo el fichero como de texto, con las transformaciones correspondientes (prueba poniendo 'rb').

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:10.