Base64 인코딩/디코딩
텍스트를 Base64로 인코딩하거나 Base64 문자열을 일반 텍스트로 디코딩합니다. 빠르고 무료이며 브라우저에서 실행됩니다.
사용 방법
- 입력 영역에 텍스트를 입력하거나 붙여넣습니다
- 「인코딩」으로 Base64로 변환하거나 「디코딩」으로 Base64에서 변환합니다
- 「복사」 버튼으로 결과를 복사합니다
자주 묻는 질문
-
Base64 인코딩이란 무엇인가요?
Base64는 바이너리 데이터를 ASCII 문자열 형식으로 표현하는 바이너리-텍스트 인코딩 방식입니다. HTML/CSS에 이미지를 삽입하거나 텍스트 기반 프로토콜로 데이터를 전송할 때 일반적으로 사용됩니다.
-
Base64는 암호화인가요?
아니요, Base64는 인코딩이지 암호화가 아닙니다. 어떠한 보안도 제공하지 않습니다. 누구나 Base64 문자열을 원래 형식으로 디코딩할 수 있습니다.
-
이 도구는 UTF-8을 지원하나요?
네, 모든 언어의 문자를 포함한 UTF-8 인코딩 텍스트를 완전히 지원합니다.
-
최대 입력 크기는 얼마인가요?
이 도구는 브라우저에서 실행되므로 한도는 기기의 메모리에 따라 다릅니다. 일반적으로 수 메가바이트는 문제없이 처리됩니다.
Base64 인코딩의 원리
Base64는 임의의 바이너리 데이터를 64개의 ASCII 문자만 사용하여 표현하는 인코딩 방식입니다. 사용되는 문자는 A–Z(26개), a–z(26개), 0–9(10개), 그리고 +와 /(2개)이며 총 64자입니다. 패딩 문자로는 =가 사용됩니다.
인코딩 과정은 다음과 같습니다. 원본 데이터를 3바이트(24비트) 단위로 분할하고, 24비트를 4개의 6비트 그룹으로 나눕니다. 각 6비트 값을 대응하는 Base64 문자로 변환합니다. 따라서 3바이트의 원본 데이터는 항상 4개의 Base64 문자로 표현됩니다. 이로 인해 Base64 인코딩은 원본 데이터보다 약 33% 크기가 증가합니다.
암호화와의 차이
Base64는 **인코딩(encoding)**이지 **암호화(encryption)**가 아닙니다. 이 둘의 차이는 매우 중요합니다.
| 구분 | 인코딩 | 암호화 |
|---|---|---|
| 목적 | 데이터 표현 형식 변환 | 데이터 기밀성 보호 |
| 역변환 | 키 없이 누구나 가능 | 키 없이는 불가능 |
| 보안성 | 없음 | 있음 |
Base64로 인코딩된 데이터는 누구나 디코딩할 수 있으므로 민감한 정보를 숨기는 용도로 사용해서는 안 됩니다.
주요 활용 사례
이메일 첨부 파일
초기 이메일 프로토콜(SMTP)은 7비트 ASCII 텍스트만 전송할 수 있었습니다. 이미지나 문서 같은 바이너리 파일을 이메일로 보내기 위해 MIME 표준에서 Base64 인코딩이 채택되었습니다. 오늘날에도 이메일 첨부 파일은 내부적으로 Base64로 인코딩되어 전송됩니다.
이미지 임베딩 (Data URI)
웹 페이지에서 작은 이미지를 별도의 HTTP 요청 없이 HTML이나 CSS에 직접 포함할 때 Base64를 사용합니다.
background-image: url("data:image/png;base64,iVBORw0KGgo...");
아이콘이나 로고처럼 작고 자주 사용되는 이미지에 적합하며, 네트워크 요청 수를 줄여 성능을 개선합니다.
API 인증 헤더
HTTP Basic 인증에서 사용자 이름과 비밀번호를 username:password 형태로 조합한 뒤 Base64로 인코딩하여 Authorization 헤더에 담아 전송합니다. 보안을 위해 반드시 HTTPS와 함께 사용해야 합니다.
JWT (JSON Web Token)
JWT의 헤더와 페이로드는 Base64URL 인코딩을 사용합니다. Base64URL은 표준 Base64에서 URL에 안전하지 않은 +와 /를 각각 -와 _로 대체한 변형입니다.