[SuNiNaTaS/Forensic] 19번 풀이

2019. 8. 2. 22:34문제풀이/suninatas.com

또 암호다.

누가봐도 이진법인데... 또 변환하라고 하는것같으니까 아스키코드로 변환할 것이다.

변환은 이 사이트에서 진행했다.

바뀐 문자열은 띄어쓰기가 잘 되어있다는 점에서 치환암호일 확률이 높다.

그래서 기초적인 카이사르 암호 복호화부터 진행해보았다.

 

shift를 조정하다 보면 제대로 된 문장이 보이고, 암호를 알 수 있다.

 

이것도 앞으로 ctf 등에서 쓸 수 있을것같아서 파이썬으로 코딩해봤다.

 

msg = "NVCTFDV KF JLEZERKRJ REU KFURP ZJ R XFFU URP REU RLKYBVP ZJ GCRZUTKWZJMVIPYRIU"
key = "key"

result = []

for shift in range(1,26):

    for i in range(0,len(msg)):
        if msg[i].isupper():
            result.append(chr( (ord(msg[i]) - ord('A') + shift) % 26 + ord('A') ))
        elif msg[i].islower():
            result.append(chr((ord(msg[i]) - ord('a') + shift) % 26 + ord('a') ))
        else:
            result.append(msg[i])

    result = ''.join(result)

    if( (result.find(key) != -1) | (result.find(key.upper()) != -1) ):
        print(result)
        break

    else:
        #print(f'shift: {shift} | result: {result}')
        result=[]
        continue

Authkey: PLAIDCTFISVERYHARD

'문제풀이 > suninatas.com' 카테고리의 다른 글

[SuNiNaTaS/Forensic] 14번 풀이  (0) 2019.08.08
[SuNiNaTaS/Forensic] 32번 풀이  (0) 2019.08.02
[SuNiNaTaS/Forensic] 18번 풀이  (0) 2019.08.02
[SuNiNaTaS/MISC] 17번 풀이  (0) 2019.08.01
[SuNiNaTaS/MISC] 13번 풀이  (0) 2019.08.01