티스토리 뷰

인코딩이란?


- 정보의 형태나 형식을 변환하는 처리나 처리 방식

- 내용에는 변화가 없다

- 암호화로는 사용 불가능

- 종류로는 ASCII , URL , HTML , Base64 , MS Script 인코딩이 있다 



ASCII 인코딩


- ASCII (American Standard Code for Information Interchange) : 미국 정보교환 표준 코드

- 1Byte 중 7bit를 이용해서 0 ~ 127 까지 128개이 문자를 구성한 코드

- 128개의 문자는 영어 알파벳 대문자, 소문자, 보조문자, 제어문자로 구성

- 영문 알파벳을 사용하는 대표적인 문자 인코딩 방법

<그림1. ASCII Table>



URL 인코딩


- URL은 사용가능한 문자가 제한되어있다.

- URL 스펙인 RFC 1738에는 URL에 사용할 수 있는 문자는 알파벳, 숫자와 몇가지 특수문자로 제한되어있다.

- 따라서 한글 등의 다양한 문자를 URL에 표시하려면 URL에 허용하는 문자로 변환하여 표현해야 한다.

- URL 메타문자들에 대한 인코딩이 필요하다

- 형식 : 기존 문자열의 HEX 값 앞에 %를 사용 (ASCII Table의 출력가능 문자)

- 한글 : UTF-8 사용

- Force Full URL Encoding : 모든 문자열을 강제로 인코딩



HTML 인코딩


- 문제가 있을만한 문자들을 인코딩하여 안전하게 HTML 문서와 함께 사용하기 위해 사용

- XSS의 대응방안으로 사용


 

<그림2. HTML 인코딩 예>

 

 

<그림3. HTML Table>


BASE64 인코딩


- 2진 데이터를 ASCII 형태의 텍스트로 표현 가능

- 웹 인증 중 기본인증에 사용

- 끝 부분의 Padding(==)으로 식별 가능

- 64개의 문자 사용 (영문 대, 소문자, 숫자 , + , / )

- 데이터를 6bit 단위로 표현

<그림4. BASE64 Table>


BASE64 인코딩 순서 

1. 아스키 테이블 맵핑

2. 2진수 변환

3. 6bit 단위로 분할

4. 10진수 변환

5. BASE64 테이블 맵핑

6. 패딩연산( 총 비트수 % 3 => 0 : 없음 / 1 : = / 2 : == )

 


MS Script


- Microsoft 에서 제공하는 인코딩 기법으로 IE에서만 사용가능

- IE는 MS Script Decoder 를 가지고 있음

- <script language="Jscript.Encode"> 를 명시하여 IE에게 알려주어야 함

- 범용성이 뛰어나지 않아 거의 사용하지 않는다.

댓글