·3분 읽기

Base64 인코딩 5가지 실전 활용 - 이메일·이미지·API·인증·웹훅

Base64 인코딩이 어디에 쓰이는지 5가지 실전 사례로 정리했어요. 이메일 첨부·이미지 임베딩·API 헤더·Basic 인증·웹훅 검증 코드 예시 포함.

Base64 인코딩 5가지 실전 활용 - 이메일·이미지·API·인증·웹훅
🔤
Base64 인코더/디코더 바로 사용하기
텍스트를 Base64로 인코딩하거나 디코딩하세요

Base64 기본 원리

**Base64는 무엇인가** - 이진 데이터(바이너리)를 텍스트 64개 문자로 변환 - 사용 문자: A-Z, a-z, 0-9, +, /, = (패딩) - 데이터 크기 약 33% 증가 - 인코딩이지 암호화 아님 (보안 X) **왜 필요한가** - 텍스트만 처리하는 시스템에 바이너리 전달 - 이메일·HTTP 헤더·JSON 등 - URL 안전 변환 **기본 변환 예시** - 원본: `Hello` - Base64: `SGVsbG8=` **URL Safe Base64** - 일반 Base64의 `+`, `/`을 `-`, `_`로 대체 - URL 파라미터·쿼리스트링에 안전 - JWT 토큰 등에 사용 **디코딩** - Base64 → 원본 바이너리 - 텍스트·이미지·PDF 등 복원

활용 1·2 — 이메일·이미지

**활용 1 — 이메일 첨부 (MIME)** 이메일 표준은 텍스트만 전송. 첨부파일은 Base64 인코딩. ``` Content-Type: image/png; name="photo.png" Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAA... ``` **활용 사례** - 자동화 이메일 발송 (Python·Node.js) - API로 이메일 첨부 보내기 (SendGrid·Mailgun) - 첨부 데이터 데이터베이스 저장 **활용 2 — 이미지 인라인 임베딩 (Data URL)** HTML·CSS에 이미지를 외부 파일 없이 직접 삽입. ``` <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEU..." /> ``` **언제 좋은가** - 작은 아이콘 (10KB 이하) - 외부 요청 줄여 빠른 로딩 - 이메일 본문 이미지 (외부 차단 회피) **언제 나쁜가** - 큰 이미지 (Base64는 33% 증가) - HTTP 캐싱 안 됨 - 가독성 떨어짐 (HTML 길어짐)

활용 3·4 — API·인증

**활용 3 — API 헤더 (바이너리 전송)** HTTP 헤더는 텍스트만 — 바이너리 전송 시 Base64. **예시 — 이미지 업로드 API** ``` POST /upload X-Image-Data: iVBORw0KGgoAAAANSUhEU... Content-Type: application/json {"filename": "photo.png"} ``` **JSON 안에 바이너리 포함** ```json { "name": "photo.png", "data": "iVBORw0KGgoAAAANSUhEU...", "size": 12345 } ``` **활용 4 — Basic 인증 (HTTP)** HTTP Basic Auth 표준. ``` Authorization: Basic dXNlcjpwYXNz ``` **디코딩** - `dXNlcjpwYXNz` → `user:pass` - 형식: `username:password` **보안 주의** - Base64는 암호화 아님 — HTTPS 필수 - 누구나 디코딩 가능 → 평문 노출 - 운영에선 OAuth·JWT 권장

활용 5 + Toolkio + 보안

**활용 5 — 웹훅 서명 검증** 웹훅 (GitHub·Slack·Stripe) 서명에 Base64 사용. **Stripe 웹훅 예시** ``` Stripe-Signature: t=1614556800,v1=Base64인코딩서명... ``` **검증 단계** 1. 페이로드 + 시크릿 → HMAC SHA256 2. 결과를 Base64 인코딩 3. 헤더의 v1과 비교 4. 일치하면 정상 웹훅 **Node.js 검증 코드** ```javascript const crypto = require('crypto'); const hash = crypto.createHmac('sha256', secret) .update(payload) .digest('base64'); const valid = hash === signature; ``` **Toolkio Base64 변환기** - 텍스트 ↔ Base64 양방향 - 파일 → Base64 (이미지·PDF) - URL Safe 옵션 - 결과 즉시 복사 **보안 주의** - Base64는 암호화 아니에요 — 누구나 디코딩 - 비밀번호·API 키를 Base64로 "숨겼다"고 안전한 게 아님 - 진짜 보안은 AES·RSA 같은 암호화 - HTTPS는 필수 (Base64만으론 평문 노출) **활용 결정 가이드** - 바이너리 → 텍스트 전송: ✅ Base64 - 이메일 첨부: ✅ Base64 (MIME 표준) - API 인증: ⚠️ HTTPS + Basic 또는 OAuth - 비밀번호 저장: ❌ Base64 X (해시 사용) - 데이터 암호화: ❌ Base64 X (AES 사용)

지금 바로 Base64 인코더/디코더를 사용해보세요

무료이며, 브라우저에서 바로 실행됩니다.

Base64 인코더/디코더