Base64 인코딩
무료 온라인 Base64 인코딩/디코딩 도구로 UTF-8 / ASCII / ISO-8859-1 문자셋과 Standard / URL-Safe / MIME 세 가지 변형을 지원합니다. 용량 증가율을 실시간으로 보여 주며 MIME 줄바꿈은 RFC 2045 규격을 따릅니다.
관련 추천
Base64 인코딩이란 무엇인가요?
Base64 는 64개의 출력 가능한 ASCII 문자를 사용해 바이너리 데이터를 텍스트로 바꾸는 인코딩 방식입니다. 처음에는 RFC 2045(MIME 표준)에서 정의되었습니다. 3바이트(24비트)를 4개의 Base64 문자(A-Z, a-z, 0-9, +, /)로 바꿔 HTTP 헤더, JSON, XML, URL 쿼리처럼 텍스트 중심 시스템에서도 안전하게 전송할 수 있게 합니다.
**Base64 는 암호화가 아닙니다.** 단순한 데이터 형식 변환이므로 누구나 쉽게 되돌릴 수 있습니다. 민감한 데이터를 보호하려면 AES 같은 실제 암호화를 사용해야 합니다. 대표적인 활용 예로는 HTTP Basic Authentication, JWT 의 header / payload(Base64URL), Data URI, 메일 첨부용 MIME 인코딩이 있습니다.
**URL-Safe Base64**(RFC 4648 §5)는 표준 Base64 의 + 와 / 를 - 와 _ 로 바꾸고, 보통 = padding 을 생략합니다. 그래서 URL, 파일 경로, JSON 필드 안에서도 안전하게 사용할 수 있습니다. JWT, OAuth PKCE code_verifier, AWS Signature V4 같은 곳에서 널리 쓰입니다.
**MIME 줄바꿈**은 RFC 2045 에서 각 줄을 76자 이하로 제한하는 표준입니다. Base64 내용을 이메일이나 줄 단위 처리가 필요한 환경에서 사용할 때 MIME 변형은 76자마다 자동으로 줄바꿈(`\n`)을 넣습니다. 이는 이메일 첨부 전송의 표준 형식입니다.
이 도구는 브라우저 기본 **btoa / atob API** 와 UTF-8 안전 처리 로직을 함께 사용해 한글, 일본어, emoji 같은 멀티바이트 문자도 올바르게 인코딩합니다. 모든 계산은 로컬에서 수행되며 데이터는 어떤 서버로도 전송되지 않습니다. 개발자 도구의 네트워크 패널에서도 외부 요청이 없음을 확인할 수 있습니다.
사용 사례
- JWT 디버깅: JWT 의 header 와 payload(Base64URL)를 디코드해 클레임 내용을 확인
- Basic Auth: username:password 를 HTTP Basic 인증 문자열로 인코딩
- OAuth 개발: PKCE 의 code_verifier 생성 또는 code_challenge 검증
- API 디버깅: JSON 데이터를 인코딩하거나 API 가 반환한 Base64 필드 디코딩
- Data URI 이미지 삽입: 작은 아이콘을 data:image/...;base64,... 형식으로 CSS / HTML 에 삽입
- 이메일 첨부 인코딩: MIME Base64 형식으로 메일 첨부용 바이너리 데이터 처리
이용 방법
- 모드 선택: Encode(인코딩) 또는 Decode(디코딩)를 눌러 방향을 바꿉니다
- 변형 선택: Standard, URL-Safe(JWT / OAuth), MIME(메일용 76자 줄바꿈) 중 선택합니다
- 내용 입력: 텍스트나 Base64 문자열을 붙여 넣으면 즉시 처리됩니다
- 통계 확인: 하단에 문자 수와 용량 증가율(인코딩 시 약 33%)이 표시됩니다
- 결과 복사: Base64 문자열이나 디코딩된 텍스트를 한 번에 복사할 수 있습니다
주요 기능
- Encode / Decode 원클릭 전환: 인코딩과 디코딩 모드를 자유롭게 바꾸고 결과를 다시 입력으로 이어서 처리할 수 있습니다
- 세 가지 문자셋 지원: UTF-8(한글 / 일본어 / emoji), ASCII, ISO-8859-1 지원
- 세 가지 변형 출력: Standard, URL-Safe(JWT / OAuth / PKCE), MIME(RFC 2045 76자 줄바꿈)
- 실시간 용량 통계: 입력 / 출력 문자 수와 증가율을 즉시 표시 (Base64 는 약 33% 증가)
- 친절한 오류 안내: 지원 범위를 벗어난 문자가 있으면 단순 실패 대신 구체적 원인을 표시
- 드래그 가능한 구분선: PC 에서 좌우 편집 영역 비율 조절 가능
- 모바일 전용 탭 전환: 스마트폰 / 태블릿에서도 입력과 출력 영역을 편하게 전환
코드 예제
JavaScript에서 Base64 인코딩 (UTF-8 한글 지원)
// Encode (UTF-8 safe)
function b64Encode(str) {
return btoa(unescape(encodeURIComponent(str)));
}
// Decode (UTF-8 safe)
function b64Decode(str) {
return decodeURIComponent(escape(atob(str)));
}
// URL-Safe encode (JWT / OAuth)
function b64UrlEncode(str) {
return btoa(unescape(encodeURIComponent(str)))
.replace(/\+/g, '-')
.replace(/\//g, '_')
.replace(/=+$/, '');
}
console.log(b64Encode('Hello 세계')); // SGVsbG8g7IS47rOE
console.log(b64Decode('SGVsbG8g7IS47rOE')); // Hello 세계Python에서 Base64 인코딩
import base64
encoded = base64.b64encode('Hello 세계'.encode('utf-8'))
print(encoded.decode())
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)
url_safe = base64.urlsafe_b64encode('Hello 세계'.encode('utf-8'))
print(url_safe.decode())
url_safe_no_pad = url_safe.decode().rstrip('=')
print(url_safe_no_pad)Java에서 Base64 인코딩
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class Base64Example {
public static void main(String[] args) {
String text = "Hello 세계";
String encoded = Base64.getEncoder()
.encodeToString(text.getBytes(StandardCharsets.UTF_8));
System.out.println(encoded);
String decoded = new String(
Base64.getDecoder().decode(encoded), StandardCharsets.UTF_8);
System.out.println(decoded);
String urlSafe = Base64.getUrlEncoder().withoutPadding()
.encodeToString(text.getBytes(StandardCharsets.UTF_8));
System.out.println(urlSafe);
String mime = Base64.getMimeEncoder()
.encodeToString(text.getBytes(StandardCharsets.UTF_8));
}
}자주 묻는 질문
Base64 인코딩과 암호화는 같은 것인가요?
아닙니다. Base64 는 텍스트를 다른 가역적 표현으로 바꾸는 형식 변환일 뿐이며, 누구나 다시 디코드할 수 있습니다. 비밀번호나 토큰처럼 민감한 데이터를 보호하려면 AES 같은 실제 암호화를 사용해야 합니다. Base64 는 바이너리 데이터를 텍스트 시스템에서 전달하기 쉽게 만들 때 적합합니다.
AES 암호화 도구Base64 인코딩 후 용량은 얼마나 커지나요?
Base64 인코딩을 하면 원본 데이터 크기가 약 33% 증가합니다. 3바이트(24비트)를 4개의 Base64 문자로 바꾸기 때문입니다. 예를 들어 100바이트 텍스트는 인코딩 후 약 133바이트가 됩니다. 도구 하단에서 증가율을 실시간으로 확인할 수 있습니다. 예: `Hello` → `SGVsbG8=` (약 +33%).
Base64 통계 도구Standard, URL-Safe, MIME 변형은 어떻게 다른가요?
Standard 는 기본 Base64 로 A-Z, a-z, 0-9, +, / 문자를 사용합니다. URL-Safe 는 + 와 / 를 - 와 _ 로 바꿔 URL 파라미터와 JWT 에 적합합니다. MIME 은 76자마다 줄바꿈을 넣어 RFC 2045 메일 규격을 따르며, 메일 첨부와 여러 줄 텍스트에 적합합니다.
URL-Safe Base64MIME Base64JWT 의 header 나 payload 는 어떻게 디코드하나요?
JWT 는 Base64URL(URL-Safe 변형)을 사용합니다. URL-Safe 모드를 선택한 뒤 JWT 첫 번째(header) 또는 두 번째(payload) 세그먼트를 붙여 넣으면 바로 디코드할 수 있습니다. 세 번째 서명 부분은 보통 내용 확인용 디코드 대상이 아닙니다.
JWT 도구Base64 의 Padding(=)은 무엇인가요?
Base64 결과 길이는 4의 배수여야 합니다. 입력 길이가 3바이트 배수가 아닐 때는 끝에 = 문자를 붙여 길이를 맞춥니다. Standard Base64 는 padding 을 사용하고, Base64URL 은 보통 생략합니다. 이 도구는 padding 을 자동으로 처리하며 디코딩 시에도 자동으로 다룹니다.
Base64 Padding 도구JavaScript 의 btoa 와 atob 는 왜 한글을 직접 지원하지 않나요?
btoa 와 atob 는 브라우저 기본 API 이지만 Latin-1(ISO-8859-1) 기준 1문자 1바이트 문자열만 다룹니다. 한글과 같은 UTF-8 문자는 여러 바이트를 차지하므로 그대로 넣으면 오류가 납니다. 먼저 encodeURIComponent 로 UTF-8 바이트 시퀀스로 변환한 뒤 처리해야 합니다.
Data URI Scheme 이란 무엇이며 Base64 로 이미지를 어떻게 넣나요?
Data URI 는 데이터를 URL 안에 직접 넣는 방식이며 형식은 `data:[<mediatype>][;base64],<data>` 입니다. 예: `data:image/png;base64,iVBORw0KGgo...` 작은 아이콘이나 CSS 배경 이미지를 인라인으로 넣을 때 자주 사용하지만, Base64 로 인해 약 33% 크기가 증가하므로 큰 파일에는 일반 URL 이 더 적합합니다.
Data URI 도구Base64 를 이미지로 변환용어집
- RFC 4648
- IETF 가 발행한 Base16 / Base32 / Base64 공식 표준입니다. 표준 Base64 와 URL-Safe Base64 의 알파벳, padding, 줄바꿈, 비허용 문자 처리 규칙을 정의합니다.URL-Safe Base64 도구Base64 Padding 도구
- RFC 2045 (MIME)
- MIME 표준으로, Base64 를 이메일 콘텐츠 전송 인코딩으로 처음 정의했습니다. 각 줄 76자 제한과 CRLF 줄바꿈을 규정하는 MIME Base64 의 근거입니다.MIME Base64 도구
- Base64URL (URL-Safe Base64)
- RFC 4648 §5 에 정의된 URL 안전 변형입니다. + 를 - 로, / 를 _ 로 바꾸고 보통 = padding 을 생략합니다. JWT, OAuth PKCE, URL 파라미터, 파일명 등에 널리 쓰입니다.URL-Safe Base64 도구JWT 도구
- MIME Base64
- RFC 2045 규격에 맞는 Base64 변형으로 76자마다 CRLF 줄바꿈을 넣습니다. 주로 이메일 첨부 전송에 사용됩니다.MIME Base64 도구
- Padding
- Base64 결과 길이는 4의 배수여야 합니다. 입력 바이트 수가 3의 배수가 아닐 때는 끝에 = 문자를 붙여 맞춥니다. Standard Base64 는 padding 을 사용하고 Base64URL 은 주로 생략합니다.Base64 Padding 도구
- Base64 알파벳
- Base64 인코딩에 사용되는 64개 문자 집합입니다. 표준 Base64 는 A-Z, a-z, 0-9, +, / 를 사용하며 필요 시 = 가 padding 으로 추가됩니다.
- btoa / atob
- 브라우저 기본 Base64 인코드 / 디코드 API 입니다. btoa 는 binary to ASCII, atob 는 ASCII to binary 를 뜻합니다. Latin-1 기준이므로 한글은 UTF-8 변환이 필요합니다.
- Data URI Scheme
- 작은 파일을 URL 안에 직접 넣는 형식으로, data:[<mediatype>][;base64],<data> 형태를 사용합니다. 작은 아이콘이나 CSS 배경 이미지를 인라인으로 넣을 때 자주 활용됩니다.Data URI 도구Base64 를 이미지로 변환
- HTTP Basic Authentication
- HTTP 인증 방식 중 하나로 username:password 를 콜론으로 연결한 뒤 Base64 로 인코딩하여 Authorization 헤더에 넣습니다.Auth Header 빌더
- Base64 용량 증가율
- Base64 인코딩 후 데이터 크기가 얼마나 늘어나는지를 뜻합니다. 3바이트를 4문자로 바꾸므로 약 33% 증가합니다. padding 이 붙으면 약간 더 커질 수 있습니다.
Base64 세 가지 변형 비교
| 특징 | Standard | URL-Safe | MIME |
|---|---|---|---|
| 특수 문자 | + / | - _ | + / |
| Padding (=) | 사용 | 보통 생략 | 사용 |
| 줄바꿈 | 없음 | 없음 | 76자마다 줄바꿈 |
| 표준 | RFC 4648 §4 | RFC 4648 §5 | RFC 2045 |
| 대표 사용 사례 | Data URI, 일반 인코딩 | JWT, URL 파라미터, 파일명 | 메일 첨부, SMTP 전송 |
Base 계열 인코딩 비교표
| 인코딩 | 문자 수 | 문자셋 특징 | 용량 증가 | 대표 용도 |
|---|---|---|---|---|
Base16 (Hex) | 16 | 0-9, A-F | 100% | 디버깅, 해시 표시 |
Base32 | 32 | A-Z, 2-7 (혼동 적은 대문자 기반) | 60% | DNS, TOTP 키, QR 코드 |
Base58 | 58 | 혼동 쉬운 0/O/I/l 제거 | 38% | 비트코인 주소, 암호화폐 |
Base62 | 62 | A-Z, a-z, 0-9 | 34% | 단축 URL, ID 인코딩 |
Base64 | 64 | A-Z, a-z, 0-9, +, / | 33% | Data URI, MIME, JWT(URL-Safe 변형) |
Authoritative References
- ReferenceRFC 4648 - The Base16, Base32, and Base64 Data Encodings
- ReferenceRFC 2045 - MIME Part One: Format of Internet Message Bodies
- ReferenceRFC 7519 - JSON Web Token (JWT)
- ReferenceMDN Web Docs - btoa()
- ReferenceMDN Web Docs - atob()
- ReferenceWikipedia - Base64
- 텍스트 비교
- 바이너리 변환
- 시저 암호
- 모스 부호
- 16진수 변환
- 비디오를 Base64로 변환
- Base64를 동영상으로 변환
- 이미지를 Base64로 변환
- Base64 이미지 변환
- 텍스트를 Base64로 변환
- Base64 텍스트로 변환
- 파일 해시 검증
- File to Base64
- Base64 파일로 변환
- 오디오 → Base64
- Base64를 오디오로 변환
- AES 암호화 및 복호화
- DES 암호화/복호화
- Base32 인코더 디코더
- Base58 인코딩 및 디코딩
- Base64 인코딩
- Base64 디코드
- Base64 비교
- Base64 분할
- Base64 여러 줄 병합
- Base64 형식화
- Base64 형식 검사
- Base64 일괄 인코딩
- Base64 일괄 디코딩
- Base64 정리
- Base64 패딩 처리
- Base64 길이 통계
- Base64 16진수로 변환
- Base64 DataURL 변환
- Base64-Hex 양방향 변환
- Base85 인코딩/디코딩
- HMAC 생성 및 검증
- PBKDF2 키 파생
- MD5 해시값
- SHA-256 해시
- SHA1 해시
- SHA512 해시
- JWT 도구
- HTML 엔티티 인코딩/디코딩
- Unicode 이스케이프
- URL 인코딩
- URL Safe Base64
- MIME Base64
- Java 난독화
- JS 난독화
- PHP 난독화
- Python 난독화