V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jbwoo
V2EX  ›  问与答

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

  •  1
     
  •   jbwoo · 291 天前 · 567 次点击
    这是一个创建于 291 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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 值(但是为啥与源文件不同?)还是测整个文件夹?我个人的理解是应该要测整个文件夹,但是整个文件夹能测吗,是我操作错误还是本就不能测整个文件夹?
    8 条回复    2023-07-19 12:46:41 +08:00
    wdssmq
        1
    wdssmq  
       291 天前
    BT 软件在相应任务上右键,有个「强制重新校验」

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

    制作种子时可以选择是否启用 DHT ,分块大小等选项,会决定最终生成的 hash ,这些数据都记录在 .torrent 文件里,BT 下载工具会按同样的入参计算 hash 来对比
    jbwoo
        2
    jbwoo  
    OP
       291 天前
    感谢大佬回复,我是小白有些专业术语不太懂,请问点了那个强制重新校验之后咋弄呀,它重新校验了以后我好像没看到哪里发生变化。
    ysc3839
        3
    ysc3839  
       291 天前 via Android
    Info Hash 是 BT 种子的 hash ,也是磁力链接的那个 hash ,这个 hash 只能用来校验种子本身的数据,下载后的文件需要用种子里面的分块数据来校验。
    选择重新校验后会自动重新下载校验未通过的部分,如果没动静说明校验通过了。
    jbwoo
        4
    jbwoo  
    OP
       290 天前
    @ysc3839 原来是这样,感谢大佬!所以不存在将下载出来的文件的 hash 与 info hash 去做对比这一说吗?
    ysc3839
        5
    ysc3839  
       290 天前 via Android
    @jbwoo 是的
    jbwoo
        6
    jbwoo  
    OP
       290 天前
    @ysc3839 那这种前后对比 hash 判断文件完整性的一般是应用在什么情况呀
    ysc3839
        7
    ysc3839  
       290 天前 via Android
    @jbwoo 主要是用于做种的情况,验证文件是否符合种子,不做种的话一般不需要验证,除非怀疑文件可能损坏。
    mokiki
        8
    mokiki  
       290 天前 via Android
    bt 文件分块 hash 用的是 sha1
    有三种可能,bt 客户端垃圾,被版权商攻击,原种文件就是有问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1501 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:01 · PVG 08:01 · LAX 17:01 · JFK 20:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.