Я думаю, что вы видите проблему кодирования.Если вы попытаетесь воспроизвести шаги, печатая числа вместо символов, вы не увидите никакой разницы.Это сценарии:
Python2:
ciphertext = '466d06ece998b7a2fb1d464fed2ced7641ddaa3cc31c9941cf110abbf409ed39598005b3399ccfafb61d0315fca0a314be138a9f32503bedac8067f03adbf3575c3b8edc9ba7f537530541ab0f9f3cd04ff50d66f1d559ba520e89a2cb2a83'
out1 = []
out2 = []
out3 = []
for x, y in zip(ciphertext.decode('hex'), ' '*10):
out1.append(hex(ord(x)))
out2.append(hex(ord(y)))
out3.append(hex(ord(x) ^ ord(y)))
print out1
print out2
print out3
Python 3:
ciphertext = '466d06ece998b7a2fb1d464fed2ced7641ddaa3cc31c9941cf110abbf409ed39598005b3399ccfafb61d0315fca0a314be138a9f32503bedac8067f03adbf3575c3b8edc9ba7f537530541ab0f9f3cd04ff50d66f1d559ba520e89a2cb2a83'
out1 = []
out2 = []
out3 = []
for x, y in zip(bytes.fromhex(ciphertext), ' '*10):
out1.append(x)
out2.append(ord(y))
out3.append(x ^ ord(y))
print(out1)
print(out2)
print(out3)
Если вы выполните их оба, вы увидите, что вывод одинаков.
Вы можете увидеть это непосредственно на ideone, python2 и python3
РЕДАКТИРОВАТЬ: Выполнение сценария, который я дал, немного измененчтобы показать шестнадцатеричное число вместо необработанных чисел, дайте мне в качестве вывода:
Python2:
['0x46', '0x6d', '0x6', '0xec', '0xe9', '0x98', '0xb7', '0xa2', '0xfb', '0x1d']
['0x20', '0x20', '0x20', '0x20', '0x20', '0x20', '0x20', '0x20', '0x20', '0x20']
['0x66', '0x4d', '0x26', '0xcc', '0xc9', '0xb8', '0x97', '0x82', '0xdb', '0x3d']
Python3:
['0x46', '0x6d', '0x6', '0xec', '0xe9', '0x98', '0xb7', '0xa2', '0xfb', '0x1d']
['0x20', '0x20', '0x20', '0x20', '0x20', '0x20', '0x20', '0x20', '0x20', '0x20']
['0x66', '0x4d', '0x26', '0xcc', '0xc9', '0xb8', '0x97', '0x82', '0xdb', '0x3d']
С теми же входными данными, которые вы дали,У меня другой ввод, но мои выходные данные согласованы между Python2 и Python3.