from base64 import b64encode as be
from secret import msg, KEY
#msg and KEY are meaningful english sentences in l33t
msg2 = msg.replace('_','')
KEY = KEY.replace('_','')
assert (len(KEY)==7) and KEY.isalnum() and msg2.isalnum()
assert 'n00bCTF' in msg2
def XOR(A, B):
return ''.join(chr(ord(A[i])^ord(B[i%len(B)])) for i in range(len(A)))
def encryption(msg, key):
return be(XOR(msg, KEY))
def print_flag(msg):
print 'CTF{%s}' % msg
if __name__ == '__main__':
print encryption(msg2, KEY) #DRcGGQBfGw1QEA4XBUURCA0MDQdGBlFTCTo7MxwJUhgAXBQa
#Decrypt msg2 to get the flag
print_flag(msg2)# your code goes here
ZnJvbSBiYXNlNjQgaW1wb3J0IGI2NGVuY29kZSBhcyBiZQpmcm9tIHNlY3JldCBpbXBvcnQgbXNnLCBLRVkKCiNtc2cgYW5kIEtFWSBhcmUgbWVhbmluZ2Z1bCBlbmdsaXNoIHNlbnRlbmNlcyBpbiBsMzN0Cm1zZzIgPSBtc2cucmVwbGFjZSgnXycsJycpCktFWSA9IEtFWS5yZXBsYWNlKCdfJywnJykKCmFzc2VydCAgKGxlbihLRVkpPT03KSBhbmQgS0VZLmlzYWxudW0oKSBhbmQgbXNnMi5pc2FsbnVtKCkKYXNzZXJ0ICduMDBiQ1RGJyBpbiBtc2cyCgpkZWYgWE9SKEEsIEIpOgoJcmV0dXJuICcnLmpvaW4oY2hyKG9yZChBW2ldKV5vcmQoQltpJWxlbihCKV0pKSBmb3IgaSBpbiByYW5nZShsZW4oQSkpKQoKZGVmIGVuY3J5cHRpb24obXNnLCBrZXkpOgoJcmV0dXJuIGJlKFhPUihtc2csIEtFWSkpCgpkZWYgcHJpbnRfZmxhZyhtc2cpOgoJcHJpbnQgJ0NURnslc30nICUgbXNnCgppZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgoJcHJpbnQgZW5jcnlwdGlvbihtc2cyLCBLRVkpCQkJCQkjRFJjR0dRQmZHdzFRRUE0WEJVVVJDQTBNRFFkR0JsRlRDVG83TXh3SlVoZ0FYQlFhCgkjRGVjcnlwdCBtc2cyIHRvIGdldCB0aGUgZmxhZwoJcHJpbnRfZmxhZyhtc2cyKSMgeW91ciBjb2RlIGdvZXMgaGVyZQ==