picoCTF 2021 Crypto (1)
暇つぶしにpicoCTF 2021を解いていく。
Mod 26
| 10 points
Tags:
AUTHOR: PANDU
Description
Cryptography can be easy, do you know what ROT13 is? cvpbPGS{arkg_gvzr_V'yy_gel_2_ebhaqf_bs_ebg13_nSkgmDJE}
# cat 01.txt cvpbPGS{arkg_gvzr_V'yy_gel_2_ebhaqf_bs_ebg13_nSkgmDJE}
exploit.py
qfile = "01.txt" buf = open(qfile).read() def rotn(text, n): _buf = '' for c in text: if not(ord('A') <= ord(c) <= ord('Z') or ord('a') <= ord(c) <= ord('z')): _buf += c continue offset = ord('A') if ord(c) < ord('a') else ord('a') _buf += chr((ord(c) - offset + n) % 26 + offset) return _buf # ROT 13 print("ROT 13: " + rotn(buf, 13)) # 2 rounds of ROT13 print("2 rounds of ROT13: " + rotn(rotn(buf, 13),13))
# python3 exploit.py ROT 13: picoCTF{next_time_I'll_try_2_rounds_of_rot13_aFxtzQWR} 2 rounds of ROT13: cvpbPGS{arkg_gvzr_V'yy_gel_2_ebhaqf_bs_ebg13_nSkgmDJE}
当然だが、ROT13を2回かけたら元に戻る(ROT 13 * ROT13 = ROT26 = ROT0)。