gpt4 book ai didi

algorithm - 如何高效识别二进制文件

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

识别二进制文件最有效的方法是什么?我想从二进制文件中提取某种签名,并用它来与其他签名进行比较。

蛮力方法是使用整个文件作为签名,这会花费太长时间和太多内存。我正在寻找一种更聪明的方法来解决这个问题,我愿意为性能牺牲一点准确性(但不要太多,嘿)。

(虽然首选 Java 代码示例,但鼓励使用与语言无关的答案)

编辑:扫描整个文件以创建散列的缺点是文件越大,花费的时间越长。由于哈希无论如何都不是唯一的,我想知道是否有更有效的方法(即:来自均匀分布的字节采样的哈希)。

最佳答案

我发现对这类事情有效的一种方法是计算两个 SHA-1 哈希值。一个用于文件中的第一个 block (我任意选择 512 字节作为 block 大小),一个用于整个文件。然后我将这两个哈希与文件大小一起存储。当我需要识别一个文件时,我会首先比较文件长度。如果长度匹配,那么我将比较第一个 block 的哈希值,如果匹配,我将比较整个文件的哈希值。前两个测试很快淘汰了很多不匹配的文件。

关于algorithm - 如何高效识别二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3483184/

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