ksnctf write-up #2
問題2 Easy Cipher
https://ksnctf.sweetduet.info/problem/2
考察
- 英語で1文字は「a」とかに限られ、「n」は「a」と推測
- 「n」が「a」であると、「na」は「an」と推測
- 同様に、単語挟みの2文字「vf」は「is」と推測
- アルファベット文字のシフト数から、ROT13による暗号化と推測
解法
# python3 import codecs s='問題文' codecs.decode(s,'rot13')
回答フォーマットというか、トップページや問題文にもあるように、
「FLAG_フラグ文字列」で回答する必要がある。
ROT NN対応スクリプト
def shift(st, nu): ret = ord(st) + nu if st.isupper() and not chr(ret).isupper(): ret = ret - 26 elif st.islower() and not chr(ret).islower(): ret = ret - 26 else: ret = ord(st) return chr(ret) ss = "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ" for i in ss: print(shift(i,13), end="") print()