from base64 import * def enkripsi(plain, keys): enc = [] plain = b64encode(plain) for i, l in enumerate(plain): kunci = ord(keys[i % len(keys)]) teks = ord(l) enc.append(chr((teks + kunci) % 127)) #enc = teks + kunci return ''.join(enc) def findKey(): key = [] known = b64encode("IDCC{") file = open("enkripsi", "rb") file = file.read() for i, l in enumerate(known): kunci = ord(file[i]) teks = ord(l) key.append((chr((kunci - teks) % 127))) return ''.join(key) def decryption(): key = "raja" flag = [] file = open("enkripsi", "r").read() for i, l in enumerate(file): kunci = ord(key[i % len(key)]) cipher = ord(l) flag.append(chr((cipher - kunci) % 127)) return ''.join(flag) print findKey() print b64decode(decryption())