MD5散列在USB闪存盘上的大文件(> 2GB)上是否会不一致?

时间:2016-03-22 17:42:22

标签: powershell-v4.0

在我的研究中,我没有看到任何关于PowerShell这一特定问题/问题的文章(没有找到直接答案,只是略有类似的答案)。

问题: 我有一个PowerShell测试脚本,它将Windows 7,8或10 PC上的Gold文件(标准)的MD5哈希内容与已写入USB驱动器的文件(标准的副本或复制品)进行比较。在将它们发送出门之前,基本上验证USB驱动器上的文件是完全相同的。 USB驱动器是NTFS格式化的,并且在将文件传输到它之后只读(或拒绝写入)。如果文件名,大小或MD5不同,则测试脚本FAILS文件。问题与较大的文件(> 2GB)不一致,例如" SQLEXPRADV_x86_ENU.exe"。有些通过,有些不通过?

当发生故障时,它们在哪个文件失败时是一致的(没有随机发生);但是,MD5哈希与原始文件不同?将USB文件传输到本地硬盘驱动器,比较时仍会出现故障。一些具有相同文件的USB驱动器将通过。 FAIL和PASS文件都具有相同的文件大小。

USB驱动器副本是在不同的部门/供应商处制作的,因此我没有详细说明文件如何传输到USB驱动器。

$fileName = "C:\DISK1\ISSetupPrerequisites\{2917C802-9F7E-4eb4-87E6-6CF7E98BAB95}\SQLEXPRADV_x86_ENU.exe"

$md5 = new-object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider

$file = [System.IO.File]::Open($fileName,[System.IO.Filemode]::Open,[System.IO.FileAccess]::Read)

$cHash = [System.BitConverter]::ToString($md5.ComputeHash($file))

================================

问题:

1)使用MD5和大文件是否有任何问题(除了生成相同哈希的机会)?我知道这是一个愚蠢的问题,但我不得不问。

2)将大文件(> 2GB)传输到USB闪存驱动器是否有可能在不改变文件大小的情况下改变MD5哈希内容?可以通过USB微控制器以某种方式翻转位而不改变文件内容吗?任何与USB数据存储性质不同的东西都可能引起关注?

3)将文件从Gold / Standard文件复制到USB驱动器的方法是否适用于Windows系统?复制&粘贴,拖动和Drop或xcopy命令等(不包括索引/元数据;例如" systeminfo.ini")

0 个答案:

没有答案