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}