Hash 哈希值在 BT 下载中怎么用来检验电影视频是否下载完整无误?

2023-07-18 20:19:09 +08:00
 jbwoo
BG 是昨天用 qBittorrent 下了一部电影,结果看的时候发现一共有三处存在几秒钟的画面停滞卡顿/跳跃,最开始在想是压制时出错、解码问题还是电脑问题....直到有位大佬告诉我可以用哈希值检验,这是我第一次听说这个概念。Info hash 相当于一个唯一标识,用下载出来的文件的 hash 值与源文件 hash 值对比看是否相同,则判断下载的文件是否有误。

有趣的是,在这个过程中我偶然发现了造成画面跳跃的原因是在下载进度 99.8%时我对文件名进行了修改,导致 qb 显示文件丢失,而我以为整个电影已经下载完成。在把文件名称改回去然后继续下载到 100%时,重新打开视频发现已经变得流畅完整,之前的画面停滞跳跃问题不存在了。

但是,再次对视频进行 hash 哈希值计算得到的数值仍然与源文件不同。这里我这个小白其实充满了问号,也是查了很多仍然不解。我先用 mac 终端 shasum -a 1 .....等这样的指令计算出了单个视频的 md5 ,sha1 ,sha256 ,sha512 值,然后用软件 fHash 一键计算,同样得到单个视频的这些 hash 数值,两个方法对应相同,且都与原来的 info hash 不同。
我在想到底是单测视频文件的 hash 值,还是测种子文件下载出来的整个文件夹的 hash 值(除了视频,还有海报、字幕、截图等文件)?

但问题是不管是用 mac 终端指令还是 fHash 软件都不能检测整个文件夹的 hash 值,分别显示:...is a directory/ cannot open a directory....本小白全然懵逼,之前的步骤全靠网上搜索和询问他人,到这一步已是山穷水尽了。
求问各位大佬,到底是单测视频文件的 hash 值(但是为啥与源文件不同?)还是测整个文件夹?我个人的理解是应该要测整个文件夹,但是整个文件夹能测吗,是我操作错误还是本就不能测整个文件夹?
820 次点击
所在节点    问与答
8 条回复
wdssmq
2023-07-18 21:54:26 +08:00
BT 软件在相应任务上右键,有个「强制重新校验」

基于 BT 协议制作的种子,只能同样基于 BT 协议来校验。。

制作种子时可以选择是否启用 DHT ,分块大小等选项,会决定最终生成的 hash ,这些数据都记录在 .torrent 文件里,BT 下载工具会按同样的入参计算 hash 来对比
jbwoo
2023-07-18 22:21:53 +08:00
感谢大佬回复,我是小白有些专业术语不太懂,请问点了那个强制重新校验之后咋弄呀,它重新校验了以后我好像没看到哪里发生变化。
ysc3839
2023-07-19 04:23:55 +08:00
Info Hash 是 BT 种子的 hash ,也是磁力链接的那个 hash ,这个 hash 只能用来校验种子本身的数据,下载后的文件需要用种子里面的分块数据来校验。
选择重新校验后会自动重新下载校验未通过的部分,如果没动静说明校验通过了。
jbwoo
2023-07-19 09:38:04 +08:00
@ysc3839 原来是这样,感谢大佬!所以不存在将下载出来的文件的 hash 与 info hash 去做对比这一说吗?
ysc3839
2023-07-19 09:59:50 +08:00
@jbwoo 是的
jbwoo
2023-07-19 10:17:20 +08:00
@ysc3839 那这种前后对比 hash 判断文件完整性的一般是应用在什么情况呀
ysc3839
2023-07-19 11:11:04 +08:00
@jbwoo 主要是用于做种的情况,验证文件是否符合种子,不做种的话一般不需要验证,除非怀疑文件可能损坏。
mokiki
2023-07-19 12:46:41 +08:00
bt 文件分块 hash 用的是 sha1
有三种可能,bt 客户端垃圾,被版权商攻击,原种文件就是有问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/957798

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX