Base64 인코딩과 디코딩의 원리
Base64 인코딩이 하는 일
Base64는 출력 가능한 64개 문자만으로 데이터를 표현하는 방식입니다. 사용하는 문자는 대문자와 소문자 A~Z, 숫자 0~9, 그리고 기호 +와 /입니다. 이 도구는 입력하거나 붙여넣은 텍스트를 이 문자 집합으로 다시 쓰고, 반대 방향도 똑같이 처리합니다. Base64 문자열을 붙여넣으면 원래 텍스트를 복원합니다.
모드 전환 버튼 하나로 인코딩과 디코딩을 오갈 수 있어 페이지를 새로 고치지 않고 양방향을 넘나듭니다. 실행하는 즉시 결과가 나타나 그대로 복사할 수 있습니다.
구체적인 예
Base64는 한 번에 3바이트씩 처리합니다. 8비트 바이트 3개를 6비트 덩어리 4개로 다시 묶고, 각 덩어리가 문자 집합의 한 글자에 대응합니다. 예를 들어 Man이라는 단어는 그 바이트열이 T, W, F, u 네 글자에 대응하여 TWFu로 인코딩됩니다.
입력 길이가 3의 배수가 아닐 때는 = 문자를 하나 또는 둘 채움용으로 덧붙입니다. 예컨대 Hello World는 SGVsbG8gV29ybGQ=로 인코딩되며, 끝에 붙은 =는 마지막 그룹을 채우기 위한 패딩이 필요했음을 나타냅니다.
언제 쓰면 좋은가
Base64는 평문이 아닌 데이터를 텍스트만 통과시키는 경로로 실어 나를 때 흔히 쓰는 방법입니다. JSON Web Token(JWT)의 한 구획을 디코딩해 클레임을 확인하거나, HTTP Basic 인증 헤더에 담긴 자격 증명을 읽거나, 쿠키·설정 파일·API 응답에서 꺼낸 값의 실제 내용을 확인할 수 있습니다.
반대로 인코딩하면 작은 이미지를 data URI 형태로 HTML이나 CSS에 바로 삽입하거나, 사실상 바이너리인 내용을 평문을 기대하는 곳에 붙여넣어도 도중에 깨지지 않게 할 수 있습니다.
참고 사항과 예외
텍스트는 인코딩 전에 UTF-8로 다루므로 악센트 문자, CJK 문자, 이모지도 왕복 후 깨지지 않고 그대로 돌아옵니다. 디코딩할 때는 입력을 먼저 검사하여, Base64 문자 집합에 없는 문자가 섞였거나 패딩이 어긋난 문자열은 엉뚱한 결과를 내놓는 대신 명확한 오류로 걸러냅니다.
이 도구는 +와 /를 쓰는 표준 문자 집합을 사용합니다. 이들을 -와 _로 바꾼 URL 안전 변형은 비슷하지만 별개의 인코딩입니다. Base64는 인코딩이지 암호화가 아니라는 점도 유의하세요. 그 자체로는 아무것도 숨기지 못하며, 결과는 누구나 원래대로 되돌릴 수 있습니다.