TypeError: строка нечетной длины при декодировании шестнадцатеричной строки и повторении цикла for только до одной точки в списке
У меня есть некоторые проблемы с декодированием строк HEX, я получаю
Traceback (most recent call last):
key : a
output = output.decode("hex")
HEX :
File "C:\Python27\lib\encodings\hex_codec.py", line 42, in hex_decode
output = binascii.a2b_hex(input)
TypeError: Odd-length string
Я пробовал некоторые методы, чтобы решить эту проблему, но ничего не работает. Также, когда я выполняю некоторые печати без декодирования, цикл прерывается при данной букве. какие-нибудь подсказки?
My Code:
key1 = "1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736"
alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
key1 = int(key1, 16)
for letter in alphabet:
print "-------------------"
print "key : " + letter
print "-------------------"
print "HEX : "
key2 = int(letter, 16)
result = key1 ^ key2
result =hex(result)
output = str(result)
output = output.decode("hex")
print output
1 ответ
Если строка имеет четную длину, но все еще отображается TypeError с нечетной длиной, это должно быть из-за начальных или конечных пробелов. Чтобы удалить их: s=" abcd " s.strip()
Чтобы удалить только конечные пробелы, используйте s.rstrip()