본문 바로가기

Base64 인코더 · 디코더

텍스트와 파일을 Base64로 인코딩/디코딩합니다. UTF-8 한글, 이미지 Data URL 생성을 지원합니다.

브라우저에서 로컬 처리 · 서버 업로드 없음
변환 방향
입력 종류
변환 결과

Base64 인코더 · 디코더 소개

Base64 인코더·디코더는 텍스트와 파일을 Base64 문자열로 바꾸고 되돌립니다. 이미지를 Data URL로 만들어 HTML에 그대로 심거나, 설정 파일에 바이너리를 담아야 할 때, 또는 API가 Base64로 주고받는 값을 확인할 때 씁니다.

Base64는 임의의 바이트를 A–Z, a–z, 0–9와 +, / 예순네 글자로만 표현하는 방식입니다. 3바이트를 4글자로 바꾸기 때문에 결과는 원본보다 약 33% 커집니다. 이미지를 Data URL로 심을 때 파일이 커질수록 HTML이 급격히 무거워지는 이유가 이것이라, 작은 아이콘 정도에 쓰고 큰 이미지는 파일로 두는 편이 낫습니다. 한글을 다룰 때는 주의할 점이 있습니다. 자바스크립트의 btoa()를 그냥 쓰면 한글에서 오류가 나는데, 이 함수가 한 글자를 1바이트로 가정하기 때문입니다. 이 도구는 먼저 UTF-8 바이트로 변환한 뒤 인코딩하므로 한글과 이모지도 깨지지 않습니다.

URL이나 파일명에 넣을 값이라면 URL-safe(base64url)를 켜세요. 표준 Base64가 쓰는 +/는 URL에서 다른 의미를 가져 충돌하는데, 이를 각각 -_로 바꾸고 끝의 = 패딩을 생략한 변형입니다. JWT가 쓰는 방식도 이것입니다. 디코딩할 때는 두 형식을 자동으로 구분하므로 신경 쓰지 않아도 됩니다. 마지막으로, Base64는 인코딩이지 암호화가 아닙니다. 누구나 되돌릴 수 있으므로 비밀을 감추는 용도로 쓰면 안 됩니다.

사용 방법

  1. 위쪽에서 인코딩 또는 디코딩, 그리고 텍스트 또는 파일 모드를 고르세요.
  2. 텍스트 모드는 입력창에 입력하면 즉시 변환되고, 파일 모드는 파일을 끌어다 놓거나 선택하세요.
  3. URL에 사용할 값이라면 URL-safe(base64url)를 켜세요. + /- _로 바뀌고 끝의 = 패딩이 제거됩니다.
  4. 결과를 복사하거나, 파일 디코딩은 다운로드 버튼으로 원본 파일을 내려받으세요.

자주 묻는 질문

한글이 깨지지 않고 인코딩되나요?
네. 입력 텍스트를 먼저 UTF-8 바이트로 변환한 뒤 Base64로 인코딩하므로 한글·이모지도 안전합니다. 디코딩 시에도 UTF-8로 다시 해석합니다. 단순히 btoa()만 쓰면 한글에서 오류가 나는데, 이 도구는 그 문제를 피합니다.
URL-safe(base64url)는 무엇이 다른가요?
표준 Base64는 +, / 문자를 쓰는데 URL이나 파일명에서는 의미가 충돌할 수 있습니다. URL-safe는 이를 각각 -, _로 바꾸고 끝의 = 패딩을 생략한 변형입니다. 디코딩 시에는 자동으로 두 형식을 모두 인식합니다.
Data URL은 어떻게 쓰나요?
파일 인코딩 결과의 Data URL 출력은 data:이미지타입;base64,... 형태로, HTML img 태그의 src나 CSS background에 바로 붙여 넣어 외부 파일 없이 이미지를 표시할 수 있습니다. 용량이 큰 파일은 문자열이 매우 길어질 수 있습니다.
결과 끝에 붙는 = 는 무엇인가요?
패딩입니다. Base64는 원본을 3바이트씩 묶어 4글자로 바꾸는데, 길이가 3의 배수가 아니면 남는 자리를 = 로 채워 길이를 맞춥니다. 그래서 끝에 = 가 0~2개 붙습니다. URL-safe 모드에서는 이 패딩을 생략합니다.

관련 가이드