본문 바로가기
프로그래밍

64진수로 바꿔보자! Base64 인코딩

by bantomak 2024. 7. 24.
반응형

Base64 인코딩이란?

인터넷 환경이나 암호 관련으로 공부하다 보면 Base64 인코딩과 만나게 될 것이다. Base64 인코딩이란 무엇인지? 그리고 왜 필요한지에 대해서 알아보자.

 

Base64 인코딩이란, 8비트(bit)씩 구성된 이진 데이터(Binary Data)를 6비트(bit)씩 잘라서 Base64에 해당하는 64개의 문자로 매핑하는 것이다. 즉, 8비트로 구성된 글자(아스키 문자)를 6비트씩 잘라서 Base64 문자표에 해당하는 다른 문자로 치환한다.

아스키 코드표

Base64로 직접 변환해 보자

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

문자  a  p  p  l  e
십진수  97  112  112  108  101
이진수  0110 0001  0111 0000  0111 0000  0110 1100  0110 0101

 

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

  • 01100001 01110000 01110000 01101100 01100101     (8비트씩 구분)
  • 011000 010111 000001 110000 011011 000110 0101   (6비트씩 구분)

이걸 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 Encode and Decode - Online

Encode to Base64 format or decode from it with various advanced options. Our site has an easy to use online tool to convert your data.

www.base64encode.org

해당 Base64 컨버터 사이트에 들어가서 직접 변환도 해보자.

Base64를 사용하는 이유

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

기존 ASCII는 시스템 간 데이터를 전달하기에 안전하지 않다. => 특정 문자열, 특히 이스케이프 문자가 실행 환경에 따라 올바르게 인식되지 않을 수 있다.

 

반면 Base64는 ASCII 중 제어문자와 일부 특수문자를 제외한 53개의 안전한 출력 문자만 이용하므로 데이터 전달에 더 적합하다.

더 많은 시스템에서 호환성이 높아진다. 즉, 안정성이 더 높다.

참조 사이트

 

Understanding the ASCII Table

Learn the history of ASCII, character encoding and the ASCII table. Basically everything important associated with ASCII.

linuxhandbook.com

 

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

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

ko.wikipedia.org

댓글