1. 개요
Base64 는 8비트 이진 데이터(바이너리나 압축파일 등)를 문자코드에 영향을 받지 않는 공통 ASCII 문자들로만 이루어진 문자열로 바꾸는 인코딩 방식이다.

2. 원리
Base64 에서 64란 숫자는 진법을 뜻한다. 즉 Base64 는 64 진법으로 인코딩을 하는 방식인데 이는 ASCII 문자를 나타낼때 가장 적당한 숫자이다. 컴퓨터가 처리하는 2진, 2의 제곱수대로 나타낼때 2의6승은 64이고 2의7승은 128인데 128의 경우 128개를 채울 ASCII 문자가 없다.

알파벳 A-Z(26개) + a-z(26개) + 숫자0-9(10개) 해서 62개의 문자가 있고 나머지 2개를 어떤기호를 쓰는지에 대한 차이가 base64의 변종으로 나눠지며, 기본은 + / 문자가 쓰여진다.

입력된 문자열바이트가 하나(8bit) 라면 출력은 6bit(64진수) 출력되고 나머지 2bit 는 패딩 문자 "=" 로 체워진다. 이는 원본문자열로 decode 했을때 원본에는 없던 비트가 생기는 것을 방지 하기 위함이다.

3. Base64 문자표
문자문자문자문자
0A16Q32g48w
1B17R33h49x
2C18S34i50y
3D19T35j51z
4E20U36k520
5F21V37l531
6G22W38m542
7H23X39n553
8I24Y40o564
9J25Z41p575
10K26a42q586
11L27b43r597
12M28c44s608
13N29d45t619
14O30e46u62+
15P31f47v63/


4. 예제

ABCD를 Base64 로 인코딩

Base64 인코딩은 24bit (ASCII 의 8bit 와 Base64 인코딩의 6bit, 8과 6의 최소공배수 24) 단위로 인코딩을 하기때문에 모자리는 비트는 0인, 패딩문자 '=' 로 치환한다.