我有一张从 iso 映像刻录的 DVD。我还有 iso 映像的 sha256sum。为了比较哈希值,我从 DVD 创建了一个 iso 映像并执行了sha256sum image.iso
,但它与原始映像的哈希值不同。
这是计算 DVD 哈希值的正确方法吗?如果不是,为什么它不起作用?
编辑:有人能解释一下 Aaron Miller 在评论中给出的原因吗?有没有办法制作具有与原始 iso 完全相同选项的 iso 文件?
答案1
我发现这样做的唯一方法是对文件本身进行哈希处理,而不是对图像进行哈希处理。使用类似Febooti 哈希和 CRC(Windows)或快速哈希 GUI您只需选择所有相关文件,右键单击,然后记录哈希值即可。 您可以在命令行中使用以下命令执行相同操作sha256sum当然也一样。将这些文件刻录到光盘后,浏览光盘上的文件并像以前一样检查哈希值。哈希值应该匹配。
补充想法:
您表示您当前的流程是从要检查的光盘创建 iso。我认为这是一个额外的、不必要的步骤。只需放入光盘并按照我的建议对光盘上的文件进行哈希处理,然后将它们与原始映像上的文件的哈希值进行比较。无需先创建 iso,因此这应该会快得多。
答案2
更新:
这是计算 DVD 哈希值的正确方法吗?
首先,获取 sha256sumDVD 本身就像在这个网站上做的一样:
... 您已经刻录了 CD,现在想回去检查一下?只要您有 sha1sum 或 md5sum,就很简单。
...
DVD-RW 驱动器是 /dev/hda
g33kgrrl@home ~/桌面$ sha1sum /dev/hda
89164d79d84f483c3642f25507186e58bf5fc0d8 /dev/hda
虽然他们使用 sha1sum,但 sha256sum 应该也一样。首先,将其与原始 iso 的哈希值进行比较。
如果不是,为什么它不起作用?
作为该用户指出:
在某些情况下,大小可能会略有不同,因为副本或原始图像中都有尾随零
他提供了一些步骤来查明是否确实如此,引述:
例如,如果 copy.iso 小于 orig.iso:
sha1sum copy.iso
head -c $(stat -c %s copy.iso) orig.iso
当然您还应该检查尾随字节是否只是零:
od -j $(stat -c %s copy.iso) orig.iso
最后回到你的新问题:
有没有办法制作具有与原始 iso 完全相同选项的 iso 文件?
我还没有找到办法做到这一点。但是,一旦你有了每个步骤的哈希值,你至少可以看到差异发生在哪里。我猜是刻录 ISO 文件的程序执行了一些刻录所必需的步骤,但也会以某种方式修改映像?
有点超出了这个问题的范围,但看看它是否被修改会很有趣每次都一样。换句话说,刻录多张光盘并查看它们的哈希值是否全部相同?
原始答案:
不确定这是否能回答你的问题(也许你现有的应用程序已经执行此功能)
但如果你得到ImgBurn 实用程序(Windows 实用程序,抱歉)它具有使用 ISO 映像“验证”光盘的功能。
我猜想,为了实现你想要实现的目标,这个程序在底层会执行一些额外的步骤。遗憾的是它不是开源的,或者你可以查看代码,看看到底发生了什么。
也许还有其他具有类似功能并且开源的刻录实用程序?
答案3
这对我有用(不过大约需要 20 分钟才能完成):
# dd if=/dev/sr0 |sha256sum