2
Ниже выполняется на Python 2.4 и производит следующий хэш: a1e48607773b80c62b80af2b6358c4faPython hashlib MD5 непоследовательность от Python 2.x до Python 3?
#!/usr/bin/python
import md5
id=76561198302409766
temp = ""
for i in range(8):
temp += chr((id & 0xFF))
id >>= 8
m = md5.new("BE"+temp)
print m.hexdigest()
Это преобразованный код Python 3:
#!/usr/local/bin/python3.3 -B
import hashlib
id = 76561198302409766
print ("Python 2.4 output: a1e48607773b80c62b80af2b6358c4fa")
m = hashlib.md5()
temp = ""
for i in range(8):
temp += chr((id & 0xFF))
id >>= 8
m.update("BE".encode('utf-8')+temp.encode('utf-8'))
print ("%s" % m.hexdigest())
Это приводит к совершенно другой хэш. Что я могу сделать, чтобы исправить это, чтобы он выдавал тот же хеш, что и предыдущий скрипт?
Эти два кода не идентичны по пути. Вы кодируете 'temp'. – ozgur