VAG*_*rus 3 python hash md5 hashlib python-3.x
我想比较两个文件的哈希值。但是不管文件是否不同,即使哈希比较结果不同真
这是代码:
import hashlib
hasher1 = hashlib.md5()
afile1 = open('canvas.png', 'rb')
buf1 = afile1.read()
a = hasher1.update(buf1)
print(str(hasher1.hexdigest()))
hasher2 = hashlib.md5()
afile2 = open('img5.png', 'rb')
buf2 = afile2.read()
b = hasher2.update(buf2)
print(str(hasher2.hexdigest()))
print(str(a) == str(b))
Run Code Online (Sandbox Code Playgroud)
输出:
614c9853a7f62c5b60d7d15bde80708f
76dc116b2c1b19b265db5e657846e649
True
Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)
通常,Python方法遵循命令-查询分离的原则-以便修改对象(即命令)的方法返回None。例如,包括list.sort和dict.update。该方法也是如此hasher1.update。所以
a = hasher1.update(buf1)
Run Code Online (Sandbox Code Playgroud)
分配None给a。相反,使用
hasher1.update(buf1)
a = hasher1.hexdigest()
Run Code Online (Sandbox Code Playgroud)
和类似的b。
import hashlib
digests = []
for filename in ['canvas.png', 'img5.png']:
hasher = hashlib.md5()
with open(filename, 'rb') as f:
buf = f.read()
hasher.update(buf)
a = hasher.hexdigest()
digests.append(a)
print(a)
print(digests[0] == digests[1])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5837 次 |
| 最近记录: |