两个文件之间的校验和
Checksum between 2 files
我有 2 个文件,我们称它们为 "a.exe" 和 "b.exe" 我想要的是让 "a.exe" 包含 "b.exe" 的校验和并进行比较知道 "b.exe" 是否被编辑,反之亦然。
我已经尝试过的:
我的问题是,当我在 "a.exe" 上包含校验和时,它的校验和会发生变化,如果我在 "b.exe" 上包含 "a.exe" 的校验和也是如此。
有什么解决方法吗?
基本上我想要的是两个文件相互检查,这样如果其中一个文件被更改,另一个文件就会知道。
下面的方法可以工作,尽管它是一种 hack 并且不是特别安全。但根据您的用例,它可能就足够了。
首先,编译a.exe和b.exe。然后,计算 a.exe 的校验和并将其附加到 b.exe 的末尾。并计算 b.exe 的校验和并将其附加到 a.exe.
的末尾
现在,要让 a.exe 验证 b.exe 的校验和,您在 a.exe 中执行以下操作:
- 将 b.exe 作为二进制文件打开。
- 将 b.exe 的内容读入内存,减去包含 a.exe 校验和的最后几个字节。
- 计算该内存块的校验和。
- 从 a.exe 末尾读取 b.exe 的校验和。
- 将计算的校验和与您从 a.exe 末尾获得的值进行比较。
这不安全,因为有人可以修改文件并更改校验和。
将校验和附加到 Windows 中的 exe:
copy /b a.exe + checksum.txt newa.exe
我不知道如何在其他操作系统上执行此操作。
我有 2 个文件,我们称它们为 "a.exe" 和 "b.exe" 我想要的是让 "a.exe" 包含 "b.exe" 的校验和并进行比较知道 "b.exe" 是否被编辑,反之亦然。
我已经尝试过的: 我的问题是,当我在 "a.exe" 上包含校验和时,它的校验和会发生变化,如果我在 "b.exe" 上包含 "a.exe" 的校验和也是如此。
有什么解决方法吗?
基本上我想要的是两个文件相互检查,这样如果其中一个文件被更改,另一个文件就会知道。
下面的方法可以工作,尽管它是一种 hack 并且不是特别安全。但根据您的用例,它可能就足够了。
首先,编译a.exe和b.exe。然后,计算 a.exe 的校验和并将其附加到 b.exe 的末尾。并计算 b.exe 的校验和并将其附加到 a.exe.
的末尾现在,要让 a.exe 验证 b.exe 的校验和,您在 a.exe 中执行以下操作:
- 将 b.exe 作为二进制文件打开。
- 将 b.exe 的内容读入内存,减去包含 a.exe 校验和的最后几个字节。
- 计算该内存块的校验和。
- 从 a.exe 末尾读取 b.exe 的校验和。
- 将计算的校验和与您从 a.exe 末尾获得的值进行比较。
这不安全,因为有人可以修改文件并更改校验和。
将校验和附加到 Windows 中的 exe:
copy /b a.exe + checksum.txt newa.exe
我不知道如何在其他操作系统上执行此操作。