【发布时间】:2018-08-04 22:32:39
【问题描述】:
我无法在 Python 3.6 中从 Python 2.7 中实现 md5 digest() 方法的相同结果。
Python 2.7:
import md5
encryption_base = 'cS35jJYp15kjQf01FVqA7ubRaNOXKPmYGRbLUiimX0g3frQhzOZBmTSni4IEjHLWYMMioGaliIz5z8u2:abcdefghkmnopqrstuvwxyz:4'
digest = md5.new (encryption_base).digest()
print(digest)
#T┼ǃ×ÞRK(M<¶┤# ²
Python 3.6:
from hashlib import md5
encryption_base = 'cS35jJYp15kjQf01FVqA7ubRaNOXKPmYGRbLUiimX0g3frQhzOZBmTSni4IEjHLWYMMioGaliIz5z8u2:abcdefghkmnopqrstuvwxyz:4'
digest = md5(encryption_base.encode()).digest()
print(digest)
#b'T\xc5\x80\x9f\x9e\xe8RK(M<\xf4\xb4#\t\xfd'
如何获得与 Python 2.7 结果中相同的字符串? .hexdigest 也不是这种情况。
【问题讨论】:
-
Hexdigest 在 Python 2 和 3 上给出完全相同的输出,为什么你认为它不是?对于这两个脚本都是
54c5809f9ee8524b284d3cf4b42309fd.
标签: python python-3.x python-2.7 md5 cryptographic-hash-function