有没有办法找出两个文件的哈希值?



我有生成两个文件的哈希值的python代码。第一个文件位于 c:\windows\system32\wscript 中.exe另一个文件是位于 d:\clone.exe 中的第一个文件的克隆。

蟒蛇代码

import os
strcommand ='certutil -hashfile c:windowssystem32wscript.exe md2'
p=os.popen(strcommand ).read()
print(str(p).split('n')[1])
strcommand1='certutil -hashfile d:clone.exe md2'
p=os.popen(strcommand1 ).read()
print(str(p).split('n')[1])

输出为

D:pythonprogram>python clonefinder.py
4cef03889db08179b57035e4463a84d5
db1cefe474ce12678ea4d6c61dc42291

但是当我在命令提示符下使用 python 中使用的命令时,两个文件的哈希值是相同的

命令提示符

D:pythonprogram>certutil -hashfile c:windowssystem32wscript.exe md2
MD2 hash of c:windowssystem32wscript.exe:
db1cefe474ce12678ea4d6c61dc42291
CertUtil: -hashfile command completed successfully.
D:pythonprogram>certutil -hashfile d:clone.exe md2
MD2 hash of d:clone.exe:
db1cefe474ce12678ea4d6c61dc42291
CertUtil: -hashfile command completed successfully.

如果我正在执行python程序,我希望哈希值相同

对此有任何帮助吗?

Windows可能是一个相当有趣的操作系统,并且由于它的年龄,添加了一些魔法,允许旧的Windows代码仍然可以与Windows 7/8/10一起使用在某些情况下,您可以在C:\windows等目录中看到不同版本的文件。取决于您的权限/取决于您是否启动 32 位/64 位应用程序。我对所有这些机制都了如指掌,但已经有一些糟糕的惊喜。

为了 100% 确定,您不会在两个不同的环境中执行 certutil 命令。我提出以下建议。

  1. 打开一个cmd.exe窗口
  2. 从该窗口中键入certutil命令
  3. 现在也从同一个窗口调用 Python 脚本C:Path_to_your_pythonpython.exe name_of_your_python_script.py使用 Python 脚本的版本,其中在正则表达式字符串前面加上 r (r"regex"(

如果仍然有不同的结果,请检查是否安装了 32 位版本或 64 位版本的 python。C:Path_to_your_pythonpython.exe -V

如果你有一个 32 位版本,那么我建议安装一个 64 位版本的 python 再次测试。

相关内容

  • 没有找到相关文章

最新更新