Так что это немного код, который использовался для работы самостоятельно, но когда я попытался реализовать его в своем коде, он дал мне ошибку, я думаю, это потому, что я мутировал биты внутри s2 есть ли другой способ XOR s3 без binascii.a2b_qpОшибка Python XOR
def xor(s1,s2):
s3 =''.join(chr(i^j) for i,j in zip(s1,s2))
s4 = binascii.a2b_qp(s3)
s5 = ''.join(chr(i^j) for i,j in zip(s2,s4))
print(s5)
# for testing:
# additional info, s1 is a mutated form of bits from s2 using an S box
s1 = b'\xc3\xbf\x00\x00\xc3\xbf\x00\xc3\xbf\x00\x00'
s2 = b'aaaaaaaa'
xor(s1, s2)
TraceBack:
Traceback (most recent call last):
File "C:\Users\Pavilion g7\workspace\Python Network\RW.py", line 138, in <module>
x= xor(m1,m2)
File "C:\Users\Pavilion g7\workspace\Python Network\RW.py", line 69, in xor
s4 = binascii.a2b_qp(s3)
ValueError: string argument should contain only ASCII characters
Какой вклад вы даете ему, который вызывает эту ошибку? – senshin
Это гораздо полезнее, если вы можете показать всю трассировку ошибок, а не только сообщение об ошибке. –
@Newbie Был ли код ранее на Python 2, и теперь вы используете его на Python 3? Поведение «chr» изменилось между двумя версиями; в Python 3, он возвращает 'str' (т. е. unicode). – senshin