파이썬으로 역연산 코드를 짰는데 잘못 짠 것 같습니다.
def q(x,a):
for i in range(32):
x[i] = ((a[i%len(a)]) ^ x[i])
def w(x,l):
for i in range(32):
x[i] = (x[i]+l)
def e(x,l):
for i in range(32):
x[i] = (x[i]-l)
a = [0xde,0xad,0xbe,0xef]
b = [0xde,0xad,0xbe,0xef]
c = [0x11,0x33,0x55,0x77,0x99,0xBB,0xDD]
result = [0xF8,0xE0,0xE6,0x9E,0x7F,0x32,0x68,0x31,0x05,0xDC,0xA1,0xAA,
0xAA,0x09,0xB3,0xD8,0x41,0xF0,0x36,0x8C,0xCE,0xC7,0xAC,0x66,
0x91,0x4C,0x32,0xFF,0x05,0xE0,0xD9,0x91]
input 길이가 32가 되어야 함
answer = ''
q(result,a)
e(result,0x1f)
w(result,0x5a)
q(result,b)
w(result,0x4d)
e(result,0xf3)
q(result,c)
for i in result:
answer += chr(i)
print(answer)
이런 식으로 짰는데 문자로 바꾸는 과정에서 오류가 발생하네요.. 역연산 코드에 어떤 문제가 있는 지 궁금합니다!
CloudNaaaaaam
댓글 7