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)