【发布时间】:2013-03-29 18:27:09
【问题描述】:
我正在对一个可执行文件进行 MD5 散列。我使用 python 脚本将二进制文件从可执行文件读取到文本文件中,但是如果我要将这个构造的文件读入 C 程序,我将处理 MB 的数据,因为 1 和 0 被视为chars,每个 1 位数字占用 8 位。是否可以将这些作为单个位读取?如果我制作一个 10MB 的数组来保存二进制转换长度和哈希填充可能需要的所有字符,那么程序的性能会有多糟糕?如果这是不可想象的,是否有更好的方法来处理数据?
【问题讨论】:
-
首先,不要使用 MD5——在当今时代使用它没有任何合理的理由。
-
这是我正在进行的研究的第一步。最重要的是让自己熟悉散列。之后我们将切换到更好的哈希算法。
-
真的没有意义——基本上你所做的一切(或者你提到的一切)都是散列。所以基本上,你是在谈论做某事,然后完全抛弃它,从第一天开始重新开始。如果您从 1 和 0 作为字符的字符串开始,这将是双重事实,正如您所描述的那样。
-
@Dolphiniac 您是说您正在读取的文件每位使用一个字节吗?就像一个只有字符
0和1的文本文件? -
我个人喜欢将我的位存储在 bytes 中。叫我疯子。