gpt4 book ai didi

algorithm - 鸡/蛋问题 : Hash of file (including hash) inside file! 可能吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:25:52 26 4
gpt4 key购买 nike

问题是我有一个包含元数据空间的文件。我想在其中存储用于完整性验证的哈希。问题是,一旦我存储了哈希,文件和哈希就会随之改变。

我完全理解,根据定义,这对于像 md5/sha 这样的单向加密哈希方法是不可能的。

我也知道像 zip & co 那样存储与内容分离的验证数据的容器的可能性。

我也知道可以单独计算哈希并将其与文件一起发送,或者将其附加在末尾或客户端在计算哈希时忽略它的地方。

这不是我想要的。

我想知道是否有一种算法可以从包含哈希本身结果的数据中获取结果哈希。

它不需要加密或满足很多标准。它也可以基于一些启发式方法,这些启发式方法在实际时间后交付所需的结果。

我真的不太喜欢数学,但难道就不能有一些真正先进的指数模多项式循环反向引用除法让这成为可能吗?

如果不是,那么(如果有)反对它的证据是什么?

我需要它的原因是因为我想(最终)将散列与 MP4 文件一起存储。它很复杂,但其他解决方案并不容易实现,因为文件要经过设计糟糕的生产管道...

最佳答案

在某种程度上,使用 CRC 可以做到这一点。我过去所做的是在文件中留出 4 个字节作为 CRC32 的占位符,并用零填充它们。然后我计算文件的 CRC。

然后可以通过计算 CRC 多项式的伽罗华域中的数字来填充占位符字节,使文件的 CRC 等于任意固定常数。

(可能有更多详细信息,但目前不正确。您基本上需要在 Galois 域中计算 (CRC_desired - CRC_initial) * 2-8*byte_offset,其中 byte_offset 是字节数占位符字节和文件结尾。)


注意:根据@KeithS 的评论,此解决方案不能防止故意篡改。我们在一个项目中使用它作为将嵌入式系统中的元数据与用于对其进行编程的可执行文件相关联的一种方式——嵌入式系统本身不直接了解用于对其进行编程的文件,因此无法计算出CRC 或散列本身——检测嵌入式系统和用于对其编程的文件之间的无意不匹配。 (在后来的系统中,我只使用了 UUID。)

关于algorithm - 鸡/蛋问题 : Hash of file (including hash) inside file! 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4432669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com