.
定义:
哈希函数是一种
将任意长度的消息压缩为
固定长度的短摘要的算法。
进行 3 次哈希运算(md5、sha1、sha512)是否 比进行 1 次哈希运算(md5)
更确定?
如何接近绝对地验证文件是否相同?
换句话说:
3 个成功的哈希值(md5、sha1、sha512)是否可以更确定
源文件和
目标文件是相同的?
(建议:
自从复制以来,两个驱动器都没有损坏)
一个问题是:
自从文件复制以来,媒体可能会损坏。
复制和哈希(md5)完成后,重新启动计算机,并在重新启动后进行比较(哈希)。
为什么要使用 3 个不同的哈希值?
使用 3 个不同的哈希值可以更确定复制后没有损坏的文件。
细节:
计算机 1
D:\Temp 为 200 GB = 200,123,456,000 字节,
约 104,000 个文件
Windows 将
D:\Temp 复制到 S:\Temp(S = 存储硬盘驱动器)
MD5 哈希通过,Ok
D:\Temp = S:\Temp(全部正确)
将(S = 存储硬盘驱动器)移至计算机 2 来执行长程序。
计算机 2
复制(S = 存储硬盘驱动器,S:\Temp)到 U:\temp
U 驱动器是 USB 2.0 驱动器 256 GB 记忆棒。
从硬盘驱动器到 USB 2.0 记忆棒的 200 GB 哈希测试结果:
151 分钟到 DirHash_md5
150 分钟到 DirHash_sha1
152 分钟到 DirHash_sha512
每次哈希运算花费的时间大致相同,
约为 151 分钟。
151 分钟完成 1 次哈希运算或
453 分钟完成 3 次哈希运算(md5、sha1、sha512)。
DirHash.exe = 336 KB(344,624 字节)
https://www.idrix.fr/Root/content/category/7/31/46/
作者:Mounir IDRASSI 版权所有 2010-2018
带有示例输出的批处理文件示例:
“C:\dirhash.exe” “S:\temp” sha1 -progress -nowait -quiet u:\DirHash_sha1_S_Temp.txt
B0C4CFECD3DC13B22EA3D6E26AE4FB167D5F38D7
B0C4CFECD3DC13B22EA3D6E26AE4FB167D5F38D7
“C:\dirhash.exe” “U:\temp” sha1 -progress -nowait -quiet u:\DirHash_sha1_U_Temp.txt
windows 文件比较:
FC.exe /b
“u:\DirHash_sha1_S_Temp.txt”
“u:\DirHash_sha1_U_Temp.txt”
FC:没有发现任何差异
换句话说:
3 个成功的哈希值(md5、sha1、sha512)是否可以
更确定
源文件和
目标文件是相同的?
(建议:由于进行了复制,所以两个驱动器均未损坏)
--
答案1
执行三次哈希运算(
md5
,sha1
,sha512
)是否会比执行一次哈希运算( )更具确定性md5
?
不太可能,除非您怀疑文件可能被第三方篡改。对于简单的“这些文件相同”计算,任何哈希算法(包括md5
)都应该没问题。
如何接近绝对地验证文件是否相同?
使用强哈希算法(例如sha1
或最好sha512
),它是耐碰撞。
三次成功的哈希值(
md5
,,sha1
)是否可以sha512
更确定源文件和目标文件是相同的?
不,一般来说不是,至少据我所知不是。
一个担心是,文件复制后,媒体可能会腐烂。
md5
在大多数情况下应该足以检测到这种现象。
每次哈希运算花费的时间大约相同,约为 151 - 152 分钟。
然后,作为建议,您应该使用您认为最适合您情况的(单个)哈希。
Windows 文件比较:未发现任何差异
那么一切可能都是一样的。