WebToolBox

Base64 인코드

WebToolBox에서 제공하는 무료 인코딩 도구인 Base64 인코드 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.

입력

결과

Base64 인코딩의 개념과 원리

Base64는 컴퓨터 시스템 간에 바이너리(이진) 데이터를 64개의 안전한 인쇄 가능 ASCII 문자(A~Z, a~z, 0~9, +, /)만을 사용하여 표현하는 표준 인코딩 방식(RFC 4648)입니다.

이메일 프로토콜(MIME), 웹 HTML 인라인 이미지(Data URL), HTTP Basic 인증 헤더, JSON Web Token(JWT) 페이로드 등 텍스트만 전송 가능한 채널에서 이미지나 바이너리 데이터의 깨짐(Corruption) 없이 전송하기 위해 필수적으로 사용됩니다.

원리는 3바이트(24비트)의 이진 데이터를 6비트씩 4개로 분할하여 각각을 64개 문자 색인표에 일치시키는 방식입니다. 데이터 길이가 3의 배수가 되지 않을 때는 끝부분에 패딩 문자(=)가 1개 또는 2개 추가됩니다.

입출력 예시 (Examples)

입력 (Input)결과 (Output)설명
ManTWFu3바이트 딱 떨어지는 경우 (패딩 없음)
MaTWE=2바이트인 경우 패딩 1개(=) 추가
MTQ==1바이트인 경우 패딩 2개(==) 추가
안녕하세요7JWI64WV7ZWY7IS47JqU한글(UTF-8) 텍스트 Base64 인코딩 결과

데이터 인코딩 및 전송 방식 비교

방식사용 문자셋용량 증가율URL 안전성주요 활용처
표준 Base6464개 (A-Z, a-z, 0-9, +, /) + =+33%취약 (+, / 가 URL 예약어)이메일 첨부(MIME), Data URI, HTTP 인증
URL-Safe Base6464개 (A-Z, a-z, 0-9, -, _) (패딩 생략 가능)+33%매우 안전JWT(JSON Web Token), URL 파라미터, 쿠키
Hex (16진수)16개 (0-9, a-f)+100%안전암호 해시(MD5, SHA-256), 바이트 덤프
URL Percent 인코딩ASCII + %XX가변 (최대 300%)완전 준수웹 쿼리 스트링, 특수문자 전송

Base64 인코딩 도구 사용 방법

  1. 상단 입력 텍스트 영역에 인코딩할 텍스트를 입력하거나 붙여넣습니다.
  2. 입력 즉시 실시간으로 UTF-8 표준에 맞춘 Base64 인코딩 결과가 하단에 출력됩니다.
  3. '복사' 버튼을 눌러 인코딩된 문자열을 클립보드에 바로 저장합니다.
  4. 반대로 디코딩이 필요할 때는 상단 메뉴의 'Base64 디코딩' 도구로 바로 이동할 수 있습니다.

실무 개발 팁 및 주의사항

  • Base64는 암호화(Encryption)가 아닙니다: 누구나 원문으로 복원할 수 있으므로 비밀번호나 민감한 개인정보를 Base64로만 감싸서 저장/전송하면 보안 사고로 이어집니다.
  • 용량 33% 증가 인지: 대용량 이미지(수 MB 이상)를 Base64로 HTML에 직접 인라인 삽입하면 DOM 파싱 성능과 네트워크 전송량이 급증하므로, 10KB 미만의 작은 아이콘 등에만 사용하는 것이 좋습니다.
  • 한글 및 UTF-8 처리: 브라우저의 기본 `btoa()` 함수는 ASCII만 지원하여 한글 입력 시 오류가 발생합니다. 본 도구는 TextEncoder를 사용하여 한글/이모지를 완벽하게 처리합니다.

프로그래밍 언어별 사용 예제 (Code Examples)

JavaScript / Node.js (UTF-8 완벽 지원)javascript
// 브라우저 (UTF-8 지원)
function encodeBase64(str) {
  const bytes = new TextEncoder().encode(str);
  const binString = Array.from(bytes, (byte) => String.fromCharCode(byte)).join("");
  return btoa(binString);
}
console.log(encodeBase64('안녕하세요')); // 7JWI64WV7ZWY7IS47JqU

// Node.js 환경
Buffer.from('안녕하세요', 'utf-8').toString('base64');
Python 3python
import base64

text = "안녕하세요"
encoded = base64.b64encode(text.encode('utf-8')).decode('ascii')
print(encoded) # 7JWI64WV7ZWY7IS47JqU

FAQ (자주 묻는 질문)

Base64 인코딩을 거치면 왜 용량이 33% 증가하나요?
컴퓨터는 보통 1문자(바이트)에 8비트를 사용하지만, Base64는 인쇄 가능한 문자 64개(2^6 = 6비트)만을 사용합니다. 따라서 3바이트(24비트)를 표현하기 위해 4글자(24비트 = 4 × 6비트)가 필요하므로 크기가 4/3(약 133%)로 늘어납니다.
Base64 끝에 붙는 '=' 기호는 무엇인가요?
끝부분에 붙는 '='는 패딩(Padding) 문자입니다. 원본 데이터의 바이트 수가 3의 배수로 딱 떨어지지 않을 때(1바이트 또는 2바이트가 남을 때), 4글자 단위를 맞추기 위해 1개 또는 2개의 '=' 기호를 채워 넣습니다.
브라우저 자바스크립트 btoa() 함수에서 오류가 발생하는 이유는 무엇인가요?
자바스크립트 내장 `btoa()` 함수는 Latin1(ASCII 0~255) 범위의 문자만 처리할 수 있어서 한글이나 이모지처럼 다중 바이트(UTF-8) 문자를 넣으면 'String contains invalid characters' 오류가 발생합니다. 본 웹 도구는 UTF-8 바이트 시퀀스를 먼저 생성하여 처리하므로 오류 없이 정상 작동합니다.
URL-Safe Base64와 일반 Base64의 차이는 무엇인가요?
일반 Base64는 '+'와 '/' 문자를 포함하는데, 이 문자들은 웹 URL 쿼리나 경로에서 예약어로 쓰여 오류를 유발할 수 있습니다. 이를 방지하기 위해 '+'는 '-'로, '/'는 '_'로 치환하고 패딩 '='를 생략할 수 있게 만든 규격이 URL-Safe Base64입니다.
이 도구에서 입력한 텍스트는 서버로 전송되나요?
전혀 전송되지 않습니다. 사용자의 웹 브라우저 내에서 자바스크립트로 100% 로컬 연산되므로, 사내 문서나 비밀 토큰을 인코딩해도 안전합니다.

인코딩 — 도구 목록

Base64 디코드

WebToolBox에서 제공하는 무료 인코딩 도구인 Base64 디코드 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.

URL 인코드

WebToolBox에서 제공하는 무료 인코딩 도구인 URL 인코드 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.

URL 디코드

WebToolBox에서 제공하는 무료 인코딩 도구인 URL 디코드 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.

HTML 이스케이프

WebToolBox에서 제공하는 무료 인코딩 도구인 HTML 이스케이프 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.

유니코드 변환

WebToolBox에서 제공하는 무료 인코딩 도구인 유니코드 변환 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.

JWT 디코더

WebToolBox에서 제공하는 무료 인코딩 도구인 JWT 디코더 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.

퓨니코드 변환기 (Punycode)

WebToolBox에서 제공하는 무료 인코딩 도구인 퓨니코드 변환기 (Punycode) 기능을 브라우저에서 바로 사용해 보세요. 복잡한 설치 없이 빠르고 안전하게 작업을 처리할 수 있습니다.