Base64 인코딩/디코딩 (텍스트)
Input
Output
이 Base64 인코더를 사용하는 이유
- 텍스트, JSON 및 소형 바이너리 페이로드에 대한 즉시 Base64 인코딩
- 파일 지원(텍스트, 이미지, 바이너리)으로 Base64 문자열로 빠르게 변환
- JWT, 쿼리 매개변수 및 웹 안전 컨텍스트를 위한 URL-안전 옵션
- CLI 도구 또는 이메일/PEM 형식을 모방하는 선택적 줄 바꿈
- 헤더, 구성 및 코드에서 쉽게 재사용할 수 있는 원클릭 복사
- 데스크톱과 모바일에서 잘 작동하는 반응형 UI
- 인코딩은 브라우저에서 발생합니다 — 데이터가 원격 서버로 전송되지 않음
🔧 Base64 인코딩 작동 방식(단계별) for base64-encoder
입력 제공
텍스트, JSON 또는 스니펫을 입력 영역에 붙여넣거나 파일을 드롭하여 원시 바이트를 Base64로 변환합니다. 도구는 바이트를 있는 그대로 읽습니다.
바이트로 변환
인코더는 문자(UTF-8 텍스트 등) 또는 파일 내용을 바이트로 변환합니다. 각 바이트는 0에서 255 사이의 8비트 값입니다.
비트를 Base64 인덱스로 재그룹화
3바이트마다(3 × 8 = 24비트) 6비트의 4개 그룹(4 × 6 = 24)으로 재그룹화됩니다. 각 6비트 그룹은 Base64 알파벳의 인덱스입니다.
Base64 문자로 매핑 및 패딩
각 6비트 인덱스는 Base64 문자로 변환됩니다. 입력이 3바이트로 나누어지지 않으면 출력 길이가 항상 4문자의 배수가 되도록 '=' 패딩이 추가됩니다.
기술 사양
문자 집합(RFC 4648)
이 인코더는 RFC 4648로 정의된 표준 Base64 알파벳을 사용합니다.
| 범위/유형 | 문자 | 참고 |
|---|---|---|
| 인덱스 0–25 | A–Z | 대문자 |
| 인덱스 26–51 | a–z | 소문자 |
| 인덱스 52–61 | 0–9 | 숫자 |
| 인덱스 62–63 | + / | 표준 Base64 기호 |
| 패딩 | = | 출력 길이가 4의 배수가 되도록 보장 |
크기 & 오버헤드
Base64는 텍스트 전용 채널에서 안전성을 위해 크기를 희생합니다. 인코딩 후 데이터가 약 1/3 정도 증가할 것으로 예상됩니다.
| 원본 크기 | Base64 크기 (약) | 오버헤드 |
|---|---|---|
| 3바이트 | 4문자 | 약 33% 증가 |
| 1 KB | ≈ 1.37 KB | 패딩 및 줄바꿈 포함 약 37% |
| 1 MB | ≈ 1.37 MB | 더 큰 규모에서도 동일한 비율 |
성능 & 실용적 한계
인코딩 자체는 빠르지만, 큰 버퍼는 브라우저 메모리와 반응성에 영향을 미칠 수 있습니다.
| 페이로드 크기 | 사용자 경험 | 권장 사항 |
|---|---|---|
| 몇 KB | 즉시 | 헤더, 구성 스니펫 및 테스트 데이터에 이상적 |
| 100 KB – 1 MB | 매우 반응적 | API 페이로드 및 픽스처에 일반적 |
| 1–5 MB | 최신 하드웨어에서 일반적으로 괜찮음 | 자주 사용한다면 CLI 도구 고려 |
| > 5–10 MB | 브라우저에서 느리거나 메모리를 많이 사용할 수 있음 | 스트리밍 인코더 또는 CLI 유틸리티 사용 |
명령줄 Base64 인코딩
대용량 파일, 자동화 또는 CI 워크플로우의 경우 플랫폼의 기본 Base64 유틸리티를 사용하세요.
리눅스 / 🍏 macOS
문자열 인코딩
echo -n 'text' | base64문자열 'text'를 Base64로 인코딩하며 줄바꿈을 추가하지 않습니다.
파일 인코딩
base64 input.bin > output.b64input.bin에서 바이너리 데이터를 읽어 Base64 텍스트를 output.b64에 기록합니다.
Windows / PowerShell
PowerShell로 문자열 인코딩
[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("text"))'text'의 UTF-8 바이트를 Base64 문자열로 변환합니다.
certutil로 파일 인코딩 (CMD)
certutil -encode input.bin output.b64내장된 Windows 도구를 사용하여 Base64 인코딩된 파일을 생성합니다.
실전 활용 사례
웹 개발 & 데이터 URI
소형 자산과 리소스를 HTML, CSS 또는 JavaScript에 직접 인라인으로 포함합니다.
- 로고, 아이콘 및 소형 이미지용 data:image/...;base64,... 생성
- CSS 규칙에 폰트 또는 SVG 콘텐츠 인라인 포함
- 소형 페이로드를 Base64 문자열로 LocalStorage에 저장
<img src="data:image/png;base64,iVBORw0KGgo...">document.styleSheets[0].insertRule("@font-face{src:url('data:font/woff2;base64,...')}" );API 개발 & 헤더
텍스트 전용 채널을 통해 자격 증명과 소형 페이로드를 안전하게 전송합니다.
- username:password 쌍으로 Authorization: Basic 헤더 구성
- 커스텀 헤더 또는 쿼리 파라미터용 JSON 페이로드를 Base64로 인코딩
- 바이너리 블롭을 Base64 문자열로 JSON에 래핑
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=fetch(url, { headers: { 'X-Payload': btoa(JSON.stringify(data)) } });테스트, 픽스처 & 디버깅
테스트 및 디버깅 세션을 위한 안정적인 텍스트 전용 픽스처를 구축합니다.
- 바이너리 픽스처(이미지, PDF)를 인코딩하여 테스트 코드에 포함
- 샘플 페이로드를 바이너리 파일 커밋 대신 Base64 문자열로 저장
- Base64로 인코딩된 필드를 예상하는 서비스를 위한 프로토타입 페이로드.
// 예시: Base64 픽스처를 사용한 Jest 테스트
const payload = Buffer.from(base64Fixture, 'base64');
expect(processPayload(payload)).toBeTruthy();
❓ Frequently Asked Questions
❓Base64는 왜 '=' 패딩을 사용하나요?
Base64는 입력을 3바이트(24비트) 블록으로 그룹화하고 4개의 문자(4 × 6비트)를 출력합니다. 입력 길이가 3으로 나누어 떨어지지 않을 때, 마지막 블록이 더 짧음을 나타내기 위해 '=' 패딩 문자가 추가됩니다. 패딩은 원본 데이터가 아닌 인코딩 형식의 일부입니다.🔗URL-safe Base64는 어떻게 생성하나요?
Base64는 '+'를 '-'로, '/'를 '_'로 대체하고 종종 후행 '=' 패딩을 제거합니다. 많은 라이브러리에 URL-safe 모드가 있습니다. 수동으로 수행해야 하는 경우 표준 Base64에서 시작하여 이러한 대체를 적용하고 사용 사례에 맞게 '='을 트리밍하세요.🔒Base64 인코딩은 보안 조치인가요?
Base64는 이진 데이터를 텍스트로 안전하게 전송할 수 있게 하는(예: JSON, HTML 또는 헤더에서) **가역적 인코딩**입니다. 그 자체로 기밀성이나 무결성을 제공하지 않습니다. 보안을 위해서는 항상 HTTPS/TLS와 적절한 암호화(예: AES 또는 공개 키 방식)를 사용하세요.📏여기서 인코딩할 수 있는 최대 파일 크기는 얼마인가요?
Pro Tips
매우 작은 자산(< 10 KB)의 경우 Base64 데이터 URI로 인라인 처리하면 HTTP 요청을 줄일 수 있지만, 큰 이미지나 글꼴에 대해서는 이 방법을 피하세요.
프로덕션 환경에서는 민감한 내용이 로그에 유출되지 않도록 잘린 Base64 페이로드(또는 해시)만 기록하세요.
백엔드가 Base64를 예상하는 경우, 서버 측에서 입력을 검증하고 정규화하여 잘못된 형식이나 비합리적으로 큰 페이로드를 거부하세요.
Additional Resources
Other Tools
- CSS 정리 도구
- HTML 정리 도구
- 자바스크립트 정리 도구
- PHP 정리 도구
- 색상 선택기
- 스프라이트 추출기
- Base64 디코더
- C# 포맷터
- CSV 포맷터
- Dockerfile Formatter
- Elm 포맷터
- ENV 포맷터
- Go 포맷터
- GraphQL 포맷터
- HCL 포맷터
- INI 포맷터
- JSON 포맷터
- LaTeX 포맷터
- 마크다운 포맷터
- Objective-C 포맷터
- Php Formatter
- 프로토콜 버퍼 포맷터
- Python 포맷터
- Ruby 포맷터
- Rust 포맷터
- Scala 포맷터
- 셸 스크립트 포맷터
- SQL 포맷터
- SVG 포맷터
- Swift 포맷터
- TOML 포맷터
- Typescript Formatter
- XML 포맷터
- YAML 포맷터
- Yarn 포맷터
- CSS 압축기
- Html Minifier
- Javascript Minifier
- JSON 압축기
- XML 최소화 도구
- HTTP 헤더 뷰어
- PDF 텍스트 변환
- 정규식 테스터
- 검색 순위 확인기
- Whois 조회