본문 바로가기

Cryptography

(3)
[CTFLearn] morse code 모스부호를 해석해보자. 이것 또한, 인터넷에 검색하면 금방 변환하는 사이트가 나올 테지만, Python으로 코드화 시켜보고자 한다. 모스부호 딕셔너리 파일은 인터넷에서 긁어왔다. 이 딕셔너리 자료를 토대로 코드를 짜보도록 한다. morse_dict = {'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.', 'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..', 'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.', 'S': '...', 'T': '-', 'U': '..-', 'V':..
[CTFLearn] Base 2 2 the 6 base 2 2 the 6 base 2 to the 6 말장난? 2의 6승 -> 64 Base64를 기반한 문제인 듯 보인다. Base64란, 간단히 설명하면 8bit 이진 데이터를 문자 코드에 영향을 받지않는 ASCII코드로만 이루어진 문자열로 인코딩 하는 방식을 의미한다. step-1. Q1RGe0ZsYWdneVdhZ2d5UmFnZ3l9 decode Q1RGe0ZsYWdneVdhZ2d5UmFnZ3l9 인터넷에 검색을 조금만 해보면 Base64를 decode해주는 사이트가 여럿 나온다. 하지만 우리는 공부를 하는 입장이기 때문에 Python을 통해 코드화 시켜보려 한다. step-2. Python 친절하게도, 파이썬에서는 base64모듈을 제공한다. import base64 base64_text = "..
[CTFLearn] Character Encoding Cryptography는 학부시절에 내가 참 좋아했던 과목이다. ctf에 도전해본다! 가장 첫번째의 문제 누가봐도 수상한 41 42 ~ 7D를 변환하여 문자열로 나타내는 문제로 보인다. import codecs text = "41 42 43 54 46 7B 34 35 43 31 31 5F 31 35 5F 55 35 33 46 55 4C 7D" hex = ''.join(text.split(' ')) bin = codecs.decode(hex, 'hex') print(str(bin, 'utf-8')) 수상한 16진수 집합을 text에 넣고 codecs 모듈의 decode함수를 통해 변환한다. bin은 'btype'이기 때문에 str로 형 변환마저 수행해준다.