2
のpython 2.4上で実行され、次の、次のハッシュ値を生成します。a1e48607773b80c62b80af2b6358c4faPython 2.xからPython 3へのPython hashlib MD5の不一致?
#!/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())
は、これは全く別のハッシュを生成します。以前のスクリプトと同じハッシュを生成するように修正するにはどうすればよいですか?
これらの2つのコードを経由して同じではありません。あなたは 'temp'をエンコードしています。 – ozgur