읽을 수 없는 문자열이 나와있고, 사진에는 K → M, O → Q, E → G만 나타나 있습니다.

이 의미는 암호학에서 알 수 있는 전치암호를 사용한 암호문 입니다.


abcdefghijklmnopqrstuvwxyz 알파벳을 나열해서 보면 k,o,e가 m,q,g가 될 때 모두 우측으로 2칸 이동한 값을 사용했다는 것을 알 수 있습니다.



python3로 작성한 코드입니다.

모든 알파벳은 ascii code로 나타낼 수 있습니다. 해당 ascii code를 통해서 +2를 해주면 문자를 변환 시킬 수 있습니다.

하지만 'z'값 이후에는 다른 값이 들어있으므로 -26을 통해 다시 맨 앞으로 가져와야 합니다.


ord(): 문자를 ascii 값으로 변환

chr(): ascii값을 문자로 변환

1
2
3
4
5
6
7
8
9
10
11
12
13
payload  ="g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. "
payload +="bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. "
payload +="sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."
result =''
 
for i in range(len(payload)):
    if( ord(payload[i]) < 97 ):
        result += payload[i]
    elif( ord(payload[i])+2 <= 122 ):
        result += chr(ord(payload[i])+2)
    elif( ord(payload[i])+2 > 122 ):
        result += chr(ord(payload[i])+2-26)
print(result)
cs


i hope you didnt translate it by hand. thats what computers are for. doing it in by hand is inefficient and that's why this text is so long. using string.maketrans() is recommended. now apply on the url.

손으로 번역하지 말고 python함수를 이용하라고 합니다. ^_^

그리고 URL에 적용하라고 합니다.


map.html → ocr.jvon 로 바꿔서 입력하면 해당 파일을 받을 수 있습니다.

jvon 파일을 들어본 적 있는지 물어보는데 못 들어봤습니다..


map만 적용 시킨 ocr.html로 하니 2번 문제로 이동했습니다.



문제를 해결하고 maketrans()함수를 이용해서 간단하게 풀어봤습니다.

python2에서는 from string import maketrans 를 하고 string.maketrans() 하면 되고,

python3에서는 str.maketrans() 하면 됩니다.

1
2
3
4
5
6
7
8
9
payload  ="g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. "
payload +="bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. "
payload +="sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj."
 
intab="abcdefghijklmnopqrstuvwxyz"
outtab="cdefghijklmnopqrstuvwxyzab"
transtab = str.maketrans(intab,outtab)
 
print(payload.translate(transtab))
cs


'Code Challenge > pythonchallenge.com' 카테고리의 다른 글

[pythonchallenge] level 4 linkedlist  (0) 2018.12.13
[pythonchallenge] level 3 equality  (0) 2018.12.13
[pythonchallenge] level 2 ocr  (0) 2018.12.13
[pythonchallenge] level 0  (0) 2018.12.12

+ Recent posts