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비트는 =로 써준다.)
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
'프로그래밍' 카테고리의 다른 글
스핀락(Spin Lock)에 대해서 알아보자 (0) | 2024.08.13 |
---|---|
스레드 생성 이후에 언제 Handle을 반환해야 할까? (0) | 2024.08.07 |
단일 장애 지점(SPOF)에 대해서 (1) | 2024.04.29 |
깃허브 코파일럿(GitHub Copliot) 무료로 사용해보기 (0) | 2024.04.25 |
의존 관계 vs 연관 관계 (0) | 2024.04.22 |
댓글