[picoCTF] caesar writeup

SCY·2023년 1월 19일
0

picoCTF

목록 보기
1/13

문제

https://play.picoctf.org/practice/challenge/64?page=1&search=caesar

picoCTF{ynkooejcpdanqxeykjrbdofgkq}

풀이

해결 과정

카이사르 관련 툴을 사용해도 되지만
괜한 오기가 생겨 직접 풀이 코드를 작성했다.

카이사르 암호는 알파벳을 밀어낸 횟수만 알면 해결된다.
주어진 평문을 0부터 25까지 밀어내 보면서 모든 경우의 수를 탐색한다.

s = 'ynkooejcpdanqxeykjrbdofgkq'

for i in range(26) :
    for j in range(len(s)) :
        tmp = chr(ord(s[j]) + i)
        if tmp > 'z' :
            tmp = chr(ord('a') + ord(tmp) - ord('z') - 1)
        print(tmp, end = '')
    print()


위 사진과 같이 출력된다.
가장 그럴싸한 문장이 정답이 될 것이다.
다섯번째 문장을 정답으로 택했다.

다른 풀이


카이사르 암호를 복호화하는 모듈러 방식을 이용하여 코드를 작성했다.

for i in range(26) :
    for j in range(len(s)) :
        tmp = (ord(s[j]) - i) % 26 + ord('a')
        print(chr(tmp), end = '')
    print()

마찬가지로 출력된 문장 중 가장 괜찮은 문장을 정답으로 선택했다.

정답

picoCTF{crossingtherubiconvfhsjkou}

profile
성장 중독 | 서버, 데이터, 정보 보안을 공부합니다.

0개의 댓글