[인코딩 & 디코딩]
오늘은 어제 문제를 풀면서 헷갈렸던 내용에 대해서 정리하고자 한다. 내용을 알고 있지만 두루뭉실하게 개념이 잡혀있어서, 문제를 풀때마다 매번 혼란이 오게 된다. 그래서 오늘 확실하게 개념을 잡고자 한다.
어제 풀었던 [Webhacking.kr] 26번 문제 링크이다.
사실 인코드와 디코드에 대해서 아래의 사진만 정확하게 이해하고 있다면 매번 구글에 인코딩, 디코딩을 검색할 이유가 없다. 즉, 아래 사진을 완벽하게 알고 넘어가야한다.
출처 : https://sourcedexter.com/data-encodingdecoding-in-python/
인코딩(Encoding)
인코딩 = 코드화 = 암호화 = 부호화
'컴퓨터에서 인코딩은 동영상이나 문자 인코딩 뿐 아니라 사람이 인지할 수 있는 형태의 데이터를 약속된 규칙에 의해 컴퓨터가 사용하는 0과 1로 변환하는 과정을 통틀어 말합니다. '
(출처: 나무위키)
즉, 사람이 인지하지 못하고 컴퓨터가 이해할 수 있도록 바꿔주는 것을 의미한다. 그 예로 'ASCII', 'URL인코딩', 'HTML인코딩', 'Base64인코딩' 등이 존재한다. 각각 컴퓨터가 이해할 수 있는 언어로 바꿔주기 때문에 어떤 것을 중심으로 인코딩을 해야하는 지 명확하게 이해한 후 인코딩을 진행해야 한다.
아래의 사진들은 각각 'ASCII 인코딩 표'와 'URL 인코딩 표'이다.
나무위키에서 명확하게 개념을 설명했지만 만약 그 내용이 길다고 생각하면 우리는 간단하게 "문자(문자열)을 바이트형식으로 변환" 라고 알고 있으면 된다.
디코딩(Decoding)
디코딩 = 역코드화 = 복호화
디코딩은 인코딩의 반대로서 사람이 이해 할 수 있도록 바꿔주는 것을 의미한다.
즉 "바이트형식을 문자(문자열)로 변환" 이다.
아래의 사진들은 각각 'ASCII 디코딩 표'와 'URL 디코딩 표'이다.
위에서 설명한 인코딩 표와 디코딩 표는 같을 수 밖에 없다. 문자를 바이트형식으로 바꾸거나, 반대로 변환할 때 필요한 표는 하나로 충분히 바꿀 수 있기 때문이다.
[인코딩 & 디코딩 변환 사이트]
사실 간단한 문자 같은 것들은 인코딩 표를 보고서 금방 변환 할 수 있다. 하지만 긴 문장일 경우에는 하나하나 대입해보기가 힘든 상황이다 그래서 나는 자동으로 변환해주는 인코딩 & 디코딩 사이트들을 가지고 왔다.
ASCII 인코더 & 디코더
https://www.easycalculation.com/ascii-hex.php
BASE64 인코더 & 디코더
http://www.convertstring.com/ko/EncodeDecode/Base64Encode
URL 인코더 & 디코더
http://www.convertstring.com/ko/EncodeDecode/UrlDecode
*해당 블로그는 개인적인 공부와 정보 공유를 위해 만들었습니다.
'공부 > Security' 카테고리의 다른 글
화이트리스트 분석기법 & 블랙리스트 분석기법 (0) | 2020.05.17 |
---|