본문 바로가기
프로그래밍

Base64 인코딩이란?

by bantomak 2024. 7. 24.

Base64 인코딩이란?

8비트(bit)씩 구성된 이진 데이터(Binary Data)를 6비트(bit)씩 잘라서 Base64에 해당하는 64개의 문자로 매핑하는 것이다.다시 말하자면, 8비트로 구성된 글자(아스키 문자)의 연속을 6비트씩 잘라서 새로운 글자(Base64)로 바꾼다.

아스키 코드표

 

여기 문자열 "apple"이 있다. 이를 Base64로 변환해보자.

 

문자  a  p  p  l  e
십진수  97  112  112  108  101
이진수  01100001  01110000  01110000  01101100  01100101

 

Base64로 직접 변환해보자

해당 이진수를 6개씩 나눠서 Base64 코드표에 해당하는 문자로 매핑해 보자.

 

0110000101110000011100000110110001100101

 

이걸 6비트씩 나눠보자

(8비트씩 붙어있던걸 6개씩 나누다보니 2비트가 남는다. 남는 2비트는 =로 써준다.)

 

Base64 코드표

0110000101110000011100000110110001100101

 

011000 = 24 = Y

010111 = 23 = X

000001 = 1 = B

110000 = 48 = w

011011 = 27 = b

000110 = 6 = G

010100 = 20 = U

남는 2비트는 =로 표시한다.

 

YXBwbGU=

 

apple에서 YXBwbGU= 로 변환이 완료되었다.

 

Base64를 사용하는 이유

Base64를 사용하는 가장 큰 이유는 Binary 데이터를 텍스트 기반 규격으로 다룰 수 있기 때문이다.

( ASCII 128을 Base64로 변환했기 때문에 규격이 달라졌다.)

기존 ASCII는 시스템간 데이터를 전달하기에 안전하지 않다. 모든 Binary 데이터가 ASCII에 포함되지 않으므로 제대로 읽지 못한다. 반면 Base64는 ASCII 중 제어문자와 일부 특수문자를 제외한 53개의 안전한 출력 문자만 이용하므로 데이터 전달에 더 적합하다.

 

참조 사이트

 

ASCII - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 1972 프린터 사용 설명서에 개시된 아스키 코드 차트표 미국정보교환표준부호(영어: American Standard Code for Information Interchange), 또는 줄여서 ASCII( , 아스키)는 영문

ko.wikipedia.org

 

베이스64 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 컴퓨터 분야에서 쓰이는 Base 64 (베이스 육십사)란 6비트 이진 데이터(예를 들어 실행 파일이나, ZIP 파일 등)를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의

ko.wikipedia.org

댓글