mus*_*ere 9 python powershell 64-bit x86
我正在尝试在Python中针对二进制文件计算SHA1哈希值,以便以后进行比较.为了确保工作正常,我使用了几种方法来检查结果的有效性.而且,我很高兴我做到了.Powershell和Python返回不同的值.7zip的SHA1功能与Powershell的结果一致,微软的FCIV也同意Python的结果.
蟒蛇:
import hashlib
with open("C:\\Windows\\system32\\wbem\\wmiutils.dll", "rb") as f:
print(hashlib.sha1(f.read()).hexdigest())
Run Code Online (Sandbox Code Playgroud)
电源外壳:
PS C:\> Get-FileHash C:\Windows\System32\wbem\wmiutils.dll -Algorithm SHA1
Run Code Online (Sandbox Code Playgroud)
结果:
Python: d25f5b57d3265843ed3a0e7b6681462e048b29a9
Powershell: B8C757BA70F6B145AD191A1B09C225FBA2BD55FB
Run Code Online (Sandbox Code Playgroud)
编辑:针对system32 dll的32位Python和64位Powershell.那就是问题所在.我有一些功课要做,但基本上,32位和64位应用程序接收不同的文件,因此,不同的哈希结果.我启动了64位python并对dll和64位PowerShell进程运行完全相同的代码.将这两个进程作为32位运行时收到一致的结果.
EDIT2:找到了解释这个问题的资源.至少它帮助我了解了正在发生的事情:https: //www.sepago.com/blog/2008/04/20/windows-x64-all-the-same-yet-very-different-part-7-file-系统和注册表
这种情况正在发生,因为您正在运行32位版本的Python并访问系统DLL - Windows神奇地将您重定向到dbit的32位版本,而PowerShell作为64位进程运行并且看到了64位版本的DLL.
我不确定我是否很高兴我知道这一点或对此感到难过.
归档时间: |
|
查看次数: |
507 次 |
最近记录: |