早安,
我编写了一个脚本,可以帮助我比较应用程序的md5哈希(是否正式)。如您所知,当您访问App官方网站时,您会看到一个供应用程序使用的官方md5哈希值,以将其与其他副本进行比较。
我的问题是,即使md5哈希相同,我的脚本测试也总是给我NOT OFFICIAL
。
这是我的代码
import subprocess
Hash = str.strip(input())
print(Hash)
Dir = str.strip(input())
print(Dir)
output = subprocess.check_output("md5 " + Dir, shell=True)
print(output)
if Hash == output:
print("OFFICIAL")
else:
print("NOT OFFICIAL")
输出为:
b'MD5 (/Users/username/Desktop/test.py) =
86ece1d78b65fdb40058a3514d90df9d\n' NOT OFFICIAL
我的代码有问题吗?
谢谢..
您需要decode()
才能将output
从bytes
转换为str
。此外,您还需要strip()
它,因为否则您将比较带有换行符的字符串与没有换行符的字符串。
注意:您可以使用标准的hashlib
模块来代替生成进程。
注2:如果可能,应使用其他较新的哈希。