![如果我为存储在网络共享上的文件生成哈希,整个文件是否会通过网络发送?如果不是,为什么?](https://linux22.com/image/1529637/%E5%A6%82%E6%9E%9C%E6%88%91%E4%B8%BA%E5%AD%98%E5%82%A8%E5%9C%A8%E7%BD%91%E7%BB%9C%E5%85%B1%E4%BA%AB%E4%B8%8A%E7%9A%84%E6%96%87%E4%BB%B6%E7%94%9F%E6%88%90%E5%93%88%E5%B8%8C%EF%BC%8C%E6%95%B4%E4%B8%AA%E6%96%87%E4%BB%B6%E6%98%AF%E5%90%A6%E4%BC%9A%E9%80%9A%E8%BF%87%E7%BD%91%E7%BB%9C%E5%8F%91%E9%80%81%EF%BC%9F%E5%A6%82%E6%9E%9C%E4%B8%8D%E6%98%AF%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%EF%BC%9F.png)
场景:我想生成存储在远程服务器上的文件的哈希值。在此示例中,假设我们在客户端和服务器上都使用 Windows 文件共享。我作为客户端在远程文件共享上找到文件。然后,我使用某种实用程序来生成相关文件的哈希值。另外,为了清楚起见,我们正在寻找文件的哈希值,而不是其路径。那么,为了完成任务,是否必须通过网络传输文件的完整副本才能完成哈希任务?
答案1
是的,整个文件都被拉下来了,因为哈希值的计算是在本地系统上进行的。
答案2
我刚刚使用 Powershell Get-FileHash
cmdlet 进行了实验,结果表明 davidgo 是正确的。首先,我对托管在远程服务器(具体来说,是 Netapp 文件管理器上的 CIFS 共享)上的 4.5 GB ISO 映像进行哈希处理。我在 2 分 17 秒内得到了结果。然后我将文件复制到本地磁盘。该复制操作本身花费了 1 分 43 秒。然后我再次运行哈希操作,并在 1 分 7 秒内得到了结果。这些数字加起来不太对,但我不知道为什么。无论如何,对本地文件进行哈希处理的速度提高了 50%。