MD5SUM包含和本身的文件?(md5sum a file that contain the sum

2019-09-30 03:02发布

我已经用C写的一个小应用程序++由单一的EXE文件。

我想提出在其“关于”对话框中的可执行文件本身的md5sum。 应该静态地嵌入到可执行文件(这样可以从十六进制编辑器中可以看出),而不是计算的飞行。

Answer 1:

由于两个@Shi&@matthewdaniel已经说了,这不能直接完成。
但是一对夫妇的解决方法是可能的:

  • 计算应用程序的MD5和包装容器的应用程序,只需将其解压,并检查它的MD5里面你的可执行文件
  • 编译代码并且只有散列代码段或其它段(除了数据),并且不是添加MD5校验码。 这将作为MD5的字符串将存储在数据段保留任何其它记忆片段有效的预先计算哈希的有效性。


Answer 2:

这是不可能的。

如果您输入MD5散列成二进制,二进制会发生变化,所以MD5哈希值也会改变。 如果你创建一个新的,并尝试将其添加到二进制,二进制将再次发生变化。

所以,最好是把散成一个文件,读取文件,并显示其内容。

另一种方法可以创建二进制文件的MD5哈希值,然后将其追加到可执行文件。 为了获取价值,你读的二进制文件的最后32个字节,其显示为MD5。 当然,如果你创建完整的可执行的哈希值,它不会匹配哈希 - 你必须创建排除最后的32字节的可执行文件的哈希值。

如果存储的128位MD5哈希原始格式(而不是基地16基地256),您只需要16个字节。



Answer 3:

只要你的MD5添加到该文件的文件将有一个不同的MD5。 有没有办法让文件本身的MD5。



文章来源: md5sum a file that contain the sum itself?