md5_file выводит разные значения для файлов с одинаковым содержимым

У меня есть php-тест, который генерирует выходной файл и сравнивает его с ранее созданным образцом. Я делаю сравнение, используя функцию php «md5_file» с обоими файлами. Моя проблема в том, что хотя оба файла имеют одинаковое содержимое, функция md5 выводит разные значения (я также пробовал с sha1_file с теми же результатами). Кроме того, я сравнил оба файла с помощью vimdiff, чтобы убедиться, что они одинаковы. Также не удается выполнить сравнение, когда я вручную копирую содержимое файла из одного файла в другой.

Моя проблема возникает на машине под управлением Ubuntu 12.x, и файл используется git.

У меня сложилось впечатление, что это может быть проблема с окончанием строки, но я не знаю, как быть в этом уверенным.


person marcelo    schedule 01.04.2015    source источник
comment
если md5 дает разные хеши, значит и файлы разные. они могут ВЫГЛЯДИТЬ идентичными вам, но это явно не так. Даже такая простая вещь, как дополнительный пробел или разрыв строки в конце файла, полностью изменит значение хеш-функции (как и должно быть).   -  person Marc B    schedule 01.04.2015
comment
Завершающие пробелы или различия "\r\n"/"\n"... но вам придется выполнить построчную проверку, чтобы устранить эти   -  person Mark Baker    schedule 01.04.2015
comment
Даже спецификация сделает его другим.   -  person AbraCadaver    schedule 01.04.2015


Ответы (1)


Попробуйте повторить значение urlencode этих файлов, оно должно быть в состоянии показать разницу концевых линий.

person Jafar Akhondali    schedule 01.04.2015