BASE64
1. 개요
바이너리 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 문자로 표현하기 위해 만들어진 인코딩이다. 네이버 지식iN 등의 URL에서 자주 볼 수 있는 형태의 바로 그것. ASCII 문자 하나가 64진법의 숫자 하나를 의미하기 때문에 BASE'''64'''라는 이름을 가졌다.
8비트짜리 바이트 3개를 6비트씩 4개로 쪼개어 Base64 코드 4개로 바꾸어 표현한다. Base64 코드를 바이너리로 디코딩하기 편하게 하기 위해 Base64 코드를 무조건 4글자 단위로 만들고, 빈 부분을 '=' 문자로 채워두기도 한다[1] 3개의 바이트를 변환한다는 점에서 UTF-8 인코딩으로 작성된 한글/한자를 변환할 때 효율이 좋다.
2. 예시
'E1L'을 Base64로 인코딩하는 과정은 아래와 같다.
결과는 'RTFM'. 디코딩은 이 표에 나온 과정을 거꾸로 하면 된다.
리눅스에서는 base64 명령을 다음과 같이 사용할 수 있다.
$ echo -n E1L | base64
RTFM
$ echo RTFM | base64 --decode
E1L