Dea*_*ado 3 python md5 hashlib
我想知道在python 2.7中观察到的行为的实际原因是什么:
import hashlib
hashlib.md5('foo') == hashlib.md5('foo')
Run Code Online (Sandbox Code Playgroud)
返回false.但...
import hashlib
hashlib.md5('foo').hexdigest() == hashlib.md5('foo').hexdigest()
Run Code Online (Sandbox Code Playgroud)
返回true.我知道hexdigest/digest返回最后的字符串表示,但由于直接将相同的数据输入到两个哈希对象中,它们不应该评估为彼此相等吗?md5 HASH当__eq__调用魔法时,对象是否不会意识到内部身份?对象本身会以什么理由评估不平等?真的很好奇.
hashlib.md5对象没有相等比较,因为它们是不同的对象,结果是错误的.
该.hexdigest方法生成一个字符串(如果您使用的是Python 3,则生成字节串),并且可以比较字符串.
BTW:
x = hashlib.md5('foo')
x == x # is True because it's the same object
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
586 次 |
| 最近记录: |