Ingin menangid
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
1.0 KiB

# Python2 ver.
# If you use Python3 interpreter, the trouble will be in print format
# [KSL Playground][Crypto][IDCC2018 DecryptME] written by Mr. Goodnight
# Link: https://euectf.stikom-bali.ac.id/challenges#[IDCC]%20DecryptME
# Flag: IDCC{S1mpl3_4nd_stR4ight}
from base64 import *
# Encryption algorithm
# ciphertext = plaintext + keys
with open('./enkripsi', mode = 'r') as f:
ciphertext = f.read()
# plaintext = ciphertext - keys
# Make my own function to decrypt the ciphertext
def decrypt(ciphertext, keys):
plaintext = ""
for num,char in enumerate (ciphertext):
plaintext += chr((ord(char) - ord(keys[num % len(keys)])) % 127)
return plaintext
# keys = ciphertext - plaitext
# Find the key by using known string attack
# Then I found out that the key is raja
known_string = b64encode("IDCC{")
keys = ""
for num,char in enumerate (known_string):
keys += chr((ord(ciphertext[num]) - ord(char)) % 127)
# Run the decrypt function the decode it
keys = "raja"
flag = b64decode(decrypt(ciphertext, keys))
print ("Flag: {f}".format(f = flag))