?y4zl4J_d0ur_b0f_0K zp nhsm
문제 파일을 열면 위와 같은 문자열이 있다. 힌트를 보면 [::-1]이라고 적혀있는데 이는 역순을 의미한다고 합니다. 따라서 역순으로 나열하고 카이사르 해독을 했습니다. 코드는 아래와 같습니다.
catalog1 = "abcdefghijklmnopqrstuvwxyz"
catalog2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
def decrypt(data, key):
rst = ""
for k in range(len(data)):
idx1 = catalog1.find( data[k] )
idx2 = catalog2.find( data[k] )
if idx1 != -1:
rst += catalog1[ (idx1-key) % len(catalog1) ]
elif idx2 != -1:
rst += catalog2[ (idx2-key) % len(catalog2) ]
else:
rst += data[k]
return rst
def main():
data_str="?y4zl4J_d0ur_b0f_0K zp nhsm"
data_rev=data_str[::-1] // 역순
for key in range(0,26): // 카이사르 암호 모든 경우의 수 시도
rst = decrypt(data_rev, key)
print(rst)
if __name__ == "__main__":
main()
결과를 살펴보면 플래그가 있습니다.
'Cryptography' 카테고리의 다른 글
[암호학 개념] (0) | 2021.09.19 |
---|---|
[HackCTF] Classic Cipher -2 (0) | 2021.09.11 |
[HackCTF] Smooth CipherText (0) | 2021.09.11 |
[HackCTF] Great Binary (0) | 2021.09.10 |
[Square CTF] 카이사르 암호 암복호화 (0) | 2021.08.12 |
댓글