~ / developer / base64

⇄ Base64 Codec

텍스트와 Base64를 오가는 인코더/디코더. UTF-8(한글·이모지) 안전.

plain.txt
encoded.b64
ready.

사용법

  1. 원문을 왼쪽 plain.txt에 입력하고 Encode →를 누르면 오른쪽 encoded.b64에 Base64 문자열이 나옵니다.
  2. 반대로 오른쪽에 Base64를 붙여넣고 ← Decode를 누르면 왼쪽에 원래 텍스트가 복원됩니다.
  3. URL-safe를 체크한 채 인코딩하면 URL·파일명에 바로 넣을 수 있는 형태로 출력됩니다.
  4. Swap은 두 칸의 내용을 맞바꾸고, Copy output은 마지막으로 결과가 나온 칸을 복사합니다.

Base64란?

Base64는 바이너리 데이터를 A–Z, a–z, 0–9, +, / 64개 문자만으로 표현하는 인코딩입니다. 이메일 첨부, data URL 이미지, HTTP Basic 인증 헤더, JWT처럼 "텍스트만 지나갈 수 있는 통로"에 바이트를 실어 보낼 때 씁니다.

원리는 간단합니다. 3바이트(24비트)를 6비트씩 4조각으로 나누고, 각 조각(0~63)을 문자표의 한 글자로 바꿉니다. 그래서 결과는 원본보다 약 33% 길어집니다. 마지막에 3바이트가 안 채워지면 =를 1~2개 붙여 길이를 4의 배수로 맞춥니다. 예: Man → TWFu, Ma → TWE=.

한글이 깨지지 않는 이유

이 도구는 텍스트를 먼저 UTF-8 바이트로 바꾼 뒤 Base64로 인코딩합니다. 한글 한 글자는 UTF-8로 3바이트, 이모지는 보통 4바이트이므로 안녕(6바이트)은 7JWI64WV(8글자)가 됩니다. 디코딩할 때도 UTF-8로 엄격하게 해석하며, 결과가 올바른 UTF-8 텍스트가 아니면 오류를 표시합니다.

URL-safe Base64

구분62번째63번째패딩
표준 Base64+/= 붙임
URL-safe (Base64URL)-_생략

디코딩은 체크 여부와 상관없이 두 형식을 모두 받아들입니다. -, _를 자동으로 되돌리고 빠진 =도 채워 주며, 중간의 공백·줄바꿈은 무시합니다.

Base64는 암호화가 아닙니다. 누구나 즉시 디코딩할 수 있으니 비밀번호나 개인정보를 "가리는" 용도로 쓰면 안 됩니다. 또 이 도구는 텍스트 전용이라 이미지·PDF 같은 바이너리를 디코딩하면 UTF-8 오류가 납니다.

자주 묻는 질문

Base64 디코딩하면 한글이 깨져요
원본이 UTF-8이 아닌 EUC-KR(CP949)로 인코딩된 경우입니다. 이 도구는 UTF-8만 해석하므로 "not UTF-8 text" 오류가 표시됩니다. 대부분의 최신 시스템은 UTF-8을 쓰니 생성한 쪽의 문자셋을 확인해 보세요.
끝에 붙은 == 는 무엇인가요?
패딩입니다. 원본 바이트 수가 3의 배수가 아닐 때 길이를 4의 배수로 맞추려고 붙입니다. 1바이트가 남으면 ==, 2바이트가 남으면 =가 붙습니다.
Base64로 바꾸면 용량이 얼마나 늘어나나요?
3바이트가 4글자가 되므로 약 4/3배, 즉 33% 정도 커집니다. 한글은 글자당 3바이트라 한글 1글자가 Base64 4글자에 해당합니다.
JWT 안의 내용을 보려면 이 도구를 써도 되나요?
JWT의 각 부분은 URL-safe Base64라서 디코딩은 가능하지만, 점(.)으로 나눠 한 조각씩 넣어야 합니다. JWT 디코더를 쓰면 헤더·페이로드·만료 시간을 한 번에 볼 수 있습니다.

관련 도구

이 도구와 함께 보면 좋은 글