Base64 인코더/디코더 — 데이터 인코딩의 원리와 활용
O
Oiyo 기여자
Base64란 무엇인가
Base64는 바이너리 데이터를 ASCII 문자로 표현하는 인코딩 방식입니다. 이미지, 파일, 바이너리 데이터를 텍스트 기반 시스템(이메일, JSON, HTML)에서 안전하게 전송하기 위해 사용됩니다.
64개의 ASCII 문자(A-Z, a-z, 0-9, +, /)를 사용해 모든 바이너리 데이터를 표현합니다.
Base64 인코더 / 디코더
이미지 Base64 변환기
Binary to Text Serialization
이미지를 텍스트 데이터(Base64)로 변환하여 코드에 직접 삽입할 수 있게 합니다.
Data URI 형식
순수 Base64
Base64 인코딩 원리
3바이트(24비트)의 이진 데이터를 4개의 6비트 그룹으로 나눕니다.
원문: "Man"
ASCII: 77 97 110
이진: 01001101 01100001 01101110
6비트 분할: 010011 010110 000101 101110
Base64 인덱스: 19 22 5 46
Base64 문자: T W F u
결과: "TWFu"
Base64로 인코딩하면 원래 데이터보다 약 33% 크기가 늘어납니다 (3바이트 → 4문자).
주요 활용 사례
1. 이미지를 HTML/CSS에 직접 삽입
<img src="data:image/png;base64,iVBORw0KGgo..." />
.icon {
background-image: url("data:image/svg+xml;base64,...");
}
작은 아이콘을 별도 파일 요청 없이 바로 넣을 때 유용합니다.
2. 이메일 첨부파일 (MIME)
이메일 프로토콜(SMTP)은 텍스트만 전송 가능합니다. 첨부파일은 Base64로 인코딩해 텍스트로 변환 후 전송됩니다.
3. JWT (JSON Web Token)
JWT의 헤더·페이로드는 Base64Url로 인코딩됩니다. (Base64의 +를 -로, /를 _로 교체한 변형)
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0...
4. API 인증 (Basic Auth)
HTTP Basic 인증에서 username:password를 Base64로 인코딩합니다.
Authorization: Basic dXNlcjpwYXNz
5. 데이터 URL
파일 내용을 URL 형식으로 표현합니다.
data:text/plain;base64,SGVsbG8gV29ybGQ=
Base64 vs URL 인코딩
| 항목 | Base64 | URL 인코딩 (%인코딩) |
|---|---|---|
| 목적 | 바이너리→텍스트 변환 | URL 특수문자 처리 |
| 출력 | A-Z, a-z, 0-9, +, / | %XX 형식 |
| 크기 증가 | 33% | 최대 300% |
| 주요 사용처 | 이메일, JWT, 이미지 | URL 파라미터 |
자주 하는 실수
- Base64 ≠ 암호화: Base64는 누구나 디코딩 가능합니다. 보안을 위한 수단이 아닙니다.
- 패딩
=: Base64 문자열 끝의=은 패딩 기호로 3의 배수가 아닌 데이터를 맞추기 위한 것입니다. 제거하면 디코딩이 실패할 수 있습니다. - Base64Url: URL에서 사용할 때는
+→-,/→_로 교체한 Base64Url을 사용해야 합니다.
O
Oiyo
Content Editor지식 인큐베이터이자 전문 콘텐츠 크리에이터. 경영, 경제, 법률 및 실생활에 유용한 실무/자격증 중심의 깊이 있는 정보를 연구하고 공유합니다.