Если я сгенерирую хеш для файла, хранящегося в сетевой папке, будет ли весь файл отправлен по проводам? Если нет, то почему?

406
Donovan

Сценарий: я хотел бы создать хэш файла, хранящегося на удаленном сервере. В этом примере предположим, что мы используем общий доступ к файлам Windows как для клиента, так и для сервера. Я, как клиент, нахожу файл на удаленной общей папке. Затем я использую какую-то утилиту для генерации хэша рассматриваемого файла. Кроме того, для ясности, мы ищем хеш файла, а не его путь. Итак, чтобы выполнить задачу, должна ли полная копия файла перемещаться по проводу, чтобы мы выполнили задачу хеширования?

0
Не уверен, должно ли это быть на сервере или нет. Donovan 6 лет назад 0
Вы спрашиваете, хэш рассчитывается на клиенте в первую очередь, или что зашифрованный файл отправляется по проводной, прежде чем вы можете применить хеш для его расшифровки? Где находится текстовый файл? SDsolar 6 лет назад 0
Если вам удастся запустить команду / скрипт на сервере для вычисления хэшей и отправки вам назад, очевидно, что файлы не будут передаваться по сети. ddbug 6 лет назад 0
Шифрование не предполагается. Скажем для примера, это .ISO, сидящий на общем ресурсе Windows. Мы являемся клиентом и не имеем административного доступа к серверу. Мы просто пытаемся получить хеш файла для использования в качестве уникального идентификатора. Donovan 6 лет назад 0
Как вы ожидаете, что локальный процесс вычислит хеш без чтения файла? harrymc 6 лет назад 0
Вопрос был в том, чтобы уладить спор. Я предположил, что файл должен быть скопирован локально для вычисления хэша. Другой человек, с которым я разговаривал, сказал, что они смогли получить хэш удаленного хранилища ISO за 10 секунд. Я утверждал, что он упускал некоторые детали, потому что он не мог объяснить, как хеш вычислялся так быстро. Для другого человека это просто означало, что любой удаленный файл можно так быстро хэшировать. Для меня это только говорит, что если это правда, то некоторые детали того, как работает система, отсутствовали. Donovan 6 лет назад 0

2 ответа на вопрос

2
davidgo

Да, весь файл извлекается, потому что вычисление хэша происходит в локальной системе.

1
Charles Burge

Я только что провел эксперимент с использованием Get-FileHashкомандлета Powershell, и мои результаты показывают, что davidgo верен. Сначала я хэшировал ISO-образ размером 4,5 ГБ, который был размещен на удаленном сервере (в частности, на ресурсе CIFS в файле Netapp). Я получил результат за 2 минуты и 17 секунд. Затем я скопировал файл на свой локальный диск. Эта операция копирования заняла 1 минуту 43 секунды. Затем я снова запустил операцию хеширования и получил результат за 1 минуту и ​​7 секунд. Эти цифры не совсем суммируются, но я не знаю почему. В любом случае, хеширование локального файла было быстрее на 50%.