바이너리 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 문자로 표현하기 위해 만들어진 인코딩
ASCII 문자 하나가 64진법의 숫자 하나를 의미하기 때문에 BASE64라는 이름을 가졌음
예를 들어, Man이라는 세 글자 단어를 Base64로 인코딩한다면 아래와 같은 흐름으로 변환하게 된다
M a n
→ 77 97 110 // 각 캐릭터 별 ASCII 변환
→ 01001101 01100001 01101110 // 8비트로 변환
→ TWFu // 6비트씩 자른 뒤(64 = 2의 6승이라서) base64 색인표에 기준해 값을 읽음
데이터 크기가 늘어나는데도 불구하고 사용하는 이유는, 통신과정에서 바이너리 데이터의 손실을 막기 위해서임.
ASCII는 아래와 같은 문제점이 있어 데이터를 전달하기에 안전하지 않음
Base64는 64개의 안전한 출력 문자(문자 코드에 영향을 받지 않는 공통 ASCII)만 사용하기 때문에, 시스템 독립적으로 동일하게 전송 혹은 저장되는 것을 보장할 수 있음.