Task information
From the task information we have:
- len(key) = 12
- alphabet = ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ{}’
- md5(plaintext) = f528a6ab914c1ecf856a1d93103948fe
Base on ‘SECCON{’ we can quick calculate key[:7]. Let’s do some quick script to find key[:7]
and we can find key[:7] = ‘VIGENER’
( key[:7] = decode_vigenere(cipher[:7],format_flag),alpha)
Base on the name of the challenge we can guess that key[:8] is ‘VIGENERE’
But len(key) = 12 and md5(plain) = f528a6ab914c1ecf856a1d93103948fe
Now we brute-forcing 4 last chars and start the decryption, if the plain we recieved is valid with md5(plain) = f528a6ab914c1ecf856a1d93103948fe it’s our flag
Here’s my script: solve.py