Последнее изменение файла - PullRequest
       19

Последнее изменение файла

7 голосов
/ 11 декабря 2011

Безопасно ли использовать File Last Modified (например, NTFS) при обнаружении изменения файла? Если нет, то всегда ли приложения для резервного копирования файлов хэшируют весь файл для проверки изменений? Если да, какой алгоритм хеширования подходит для этой проверки?

Ответы [ 3 ]

3 голосов
/ 11 декабря 2011

Зависит от требований приложения. Может ли он терпеть ложные срабатывания? Ложные негативы?

Дата последнего изменения файла ненадежна. Например, FTP может изменить дату изменения без изменения файла, или файл может быть загружен дважды, один раз за себя, изменяя дату изменения без изменения файла. С другой стороны, есть несколько утилит, которые изменяют файл, но сохраняют ту же дату последнего изменения файла.

Если действие над файлом обязательно должно быть выполнено после его изменения, надежный способ - использовать хороший хеш или отпечаток пальца. Это займет время. Один из способов улучшить шансы, не занимая так много времени, - это сравнить дату изменения с размером файла, но, опять же, это не является надежным.

2 голосов
/ 11 декабря 2011

Я бы не стал доверять времени последнего изменения, так как даже открытие файла и добавление одного символа изменило бы его время изменения.Хеширование имеет проблему коллизий, поэтому я бы посоветовал прочитать об алгоритме Рабина «Отпечатки пальцев».

0 голосов
/ 03 сентября 2018

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

Поверьте мне, как только вы привыкнете не выбирать самый простой маршрут и всегда делать самый безопасный, у вас появятся отличные привычки, которые приведут вас к другим мерам безопасности.

...