Search
Duplicate
🎷

[WEB] Base64 인코딩이란?

생성일
2022/12/05 23:16
태그
공개여부

인코딩이란?

인코딩이란 정보의 형태나 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태나 형식으로 변환하는 처리 혹은 그 처리 방식을 말한다.

Base64 인코딩이란?

Base64란 64진법이란 의미이다. 컴퓨터 분야에서 쓰이는 base64는 실행 파일이나 압축 파일 같은 8비트 이진 데이터를 문자 코드에 영향 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 문자열로 바꾸는 인코딩 방식을 가리키는 개념이다.
인코딩 과정은 다음과 같다.
1.
24비트의 버퍼를 생성하여 위쪽부터 바이트 데이터를 넣은 뒤,
2.
버퍼 위쪽부터 6비트 단위로 자른다.
3.
base64 변환표의 ASCII 문자로 변환한다.
원본 문자열 ⇒ ASCII binary ⇒ 6비트로 자름 ⇒ base64 encoding
ex) Man ⇒ 77 97 110 ⇒ 01001101 01100001 01101110 ⇒ TWFu
base64 변환표
Man Base64 인코딩

사용 이유

base64 인코딩을 하게되면 6비트당 2비트의 오버헤드가 발생하여 데이터의 크기가 33% 증가한다. 뿐만 아니라 인코딩, 디코딩 추가 연산이 필요하다. 그럼에도 불구하고 통신과정에서 바이너리 데이터의 손실을 막기 위해 사용된다.
대표적으로 ASCII 는 7비트 인코딩으로, 나머지 1비트를 처리하는 방식이 시스템 별로 상이하다.
Line ending등 일부 제어 문자의 경우 시스템 별로 다른 코드값을 가진다.
따라서 ASCII는 시스템 간 데이터를 전달하기에 안전하지 않다.