Should be unintended, since the key length is only 6. I brute each 3 bytes and get the flag by guess it :p . Here is script i used to bruteforce the possible key and value
from itertools import permutationsimport stringdefcheck(hello):returnall(c in string.printable for c in hello)ct = [0x7d,0x9c,0x73,0xb4,0xc,0x8e,0x4e,0x99,0x71,0xe0,0xb,0x9e,0x63,0xd8,0x75,0xef,0x50,0xa3,0x20,0xde,0x42,0xf4,0x4d,0x8c,0x22,0xdf,0x42,0xe1,0x4d,0x92,0x30,0x8c,0x3c]list_poss = [i for i inrange(256)]for i inpermutations(list_poss, 3): poss = []for j inrange(0,len(ct)-5,6): tmp =bytes([(ct[j+3]^i[0])])# tmp = bytes([(ct[j]^i[0])]) tmp +=bytes([ct[j+4]^i[1]])# tmp += bytes([ct[j+1]^i[1]]) tmp +=bytes([ct[j+5]^i[2]])# tmp += bytes([ct[j+2]^i[1]])try: tmp = tmp.decode()if(check(tmp)): poss.append(tmp)exceptExceptionas e:breakif(len(poss)==5):print(i, poss)