【问题标题】:Hashing chunks of big file散列大文件块
【发布时间】:2018-03-31 11:25:55
【问题描述】:

我有一个很大的音频文件(2 小时)foo.mp3。我想让第三方 P 验证其创建日期。然而,P 只能查看(听到)foo.mp3 的某些小部分。在创作之日,尚不清楚哪些部分将提供给 P。

所以我的计划是将foo.mp3 分割成小块,对这些块进行哈希处理并将哈希值发布到网络上的某个地方以供以后验证。

拆分 foo.mp3 并创建哈希的 bash 脚本看起来如何?

【问题讨论】:

  • 到目前为止您尝试了什么?使用各种工具可以分割音频文件。您是在寻找工具推荐,还是在寻找自己的代码方面的帮助?

标签: bash hash


【解决方案1】:

您不必将文件拆分成块。现在只需发布整个文件的 SHA256,当对方访问该文件时,他们将能够看到它具有与您之前发布的相同的 SHA256 和。 (我建议至少使用 SHA256 作为哈希算法。)

现在,如果您出于某种原因仍然决定必须这样做,我建议使用split(1),然后运行sha256sum

mkdir split
split -b8192 foo split/
sha256sum split/*

这会将文件拆分为 split/ 目录中的 8KB 块并打印 SHA256 哈希值。

【讨论】:

  • 我澄清了我的问题。块必须是完整的音频文件。
  • 好吧...你用什么来传输你的文件?您可以给出原始块或解码 PCM 的哈希值,但如果您的流媒体软件进行任何重新编码,哈希值最终将完全不同。
【解决方案2】:

1。将文件分成几个块

mp3splt -a -t 0.01 -o foo-@n -d outputDir foo.mp3

2。创建哈希

sha256sum outputDir/* > hashes.sha

3。在网络上记录结果

具有 sha256 散列和/或大 sha256 散列文件的 sha256 散列的已发布文件的结果可能如下所示:)

5b2718841d2f610ce264191760383dca309fd5a6f8c745e7466aa6c157e0b279 文件1.sha 0b568a4e802e9bc29740e8904c09f361c844dc4bd11d8855a188e81672f453ba Files2.sha d8fec62a53228cf372ce81f4e3fd220b2df7bb5d5f8b144c8ffa4e41a4aeaad4 Camera.zip ac0e59caa3f91f49824540fa452e285b9e47843f24dda309955a5287db4c89b5 Camerasmall.zip e1f9b37f15eed99a8814f066021e6d370fd4e346b2779fc6494ee685b9e02467 SoundsSmall.zip d054a2ac8adf069c2051659c68e38a7b6e26172afb2a6c377f7d067c666f9f6e Sounds.zip

【讨论】:

    猜你喜欢
    • 2015-05-03
    • 1970-01-01
    • 2015-08-05
    • 2019-10-26
    • 2019-03-31
    • 2015-06-21
    • 2011-08-30
    • 2021-11-16
    • 2019-10-08
    相关资源
    最近更新 更多