Base64 인코더

텍스트 또는 바이너리 데이터를 Base64로 인코딩

일반 텍스트

Base64

로컬에서 실행 · 시크릿 붙여넣기 안전
Base64 출력...

Base64 인코딩이란?

Base64는 64개의 인쇄 가능한 ASCII 문자 집합을 사용하여 이진 데이터를 표현하는 이진-텍스트 인코딩 방식입니다. 이메일(MIME), HTTP 헤더, XML과 같이 텍스트만 처리하는 시스템을 통해 이진 데이터를 안전하게 전송하기 위해 설계되었습니다. 'Base64'라는 이름은 인코딩 알파벳에 사용되는 64개의 문자에서 유래했습니다.

인코딩은 3바이트의 입력(24비트)을 4개의 6비트 그룹으로 나누는 방식으로 작동합니다. 각 6비트 값은 Base64 알파벳의 한 문자에 매핑됩니다. 입력 길이가 3의 배수가 아닌 경우, 출력 문자 수가 4의 배수가 되도록 패딩 문자(=)가 추가됩니다. 결과 문자열은 원본 데이터보다 약 33% 크지만 일반 텍스트로 안전하게 전송할 수 있습니다.

이 도구를 사용하는 이유

이 인코더는 유니코드 텍스트를 올바르게 처리하고, 표준 및 URL-safe 변형을 모두 지원하며, 완전히 브라우저 내에서 인코딩합니다 — 데이터가 사용자 기기를 벗어나지 않습니다.

즉시 인코딩
입력하는 동안 결과가 나타납니다. 클릭할 버튼도, 서버 응답을 기다릴 필요도 없습니다.
🔗
URL-safe 전환
클릭 한 번으로 표준(+/)과 URL-safe(-_) 인코딩 간에 전환합니다. URL-safe 변형의 패딩은 자동으로 제거됩니다.
🔒
완전 클라이언트 사이드
모든 인코딩은 기본 btoa API와 TextEncoder를 사용하여 브라우저에서 로컬로 수행됩니다. 어떤 서버에도 전송되지 않습니다.
🎛️
유니코드 지원
인코딩 전에 encodeURIComponent를 사용하여 이모지, CJK 문자, 모든 UTF-8 텍스트를 포함한 완전한 유니코드를 올바르게 처리합니다.

이 온라인 Base64 인코더 사용 방법

계정 없음, 설치 없음, 업로드 없음 — 텍스트를 붙여넣으면 인코딩된 출력이 즉시 나타납니다.

  1. 1
    텍스트 붙여넣기 또는 입력
    입력 필드를 클릭하고 텍스트를 붙여넣으세요 — 일반 문자열, JSON 페이로드, API 키, 이메일 주소, 또는 모든 UTF-8 콘텐츠. 입력하는 동안 인코딩이 실시간으로 업데이트됩니다.
  2. 2
    변형 선택
    MIME, HTTP Basic Auth 및 일반 사용을 위해 표준(RFC 4648)을 선택하세요. JWT 토큰, 쿼리 문자열 매개변수, 파일명, + 또는 /가 URL 파싱을 깰 수 있는 모든 컨텍스트에는 URL-safe를 선택하세요.
  3. 3
    출력 복사
    복사를 클릭하면 한 번의 클릭으로 Base64 문자열이 클립보드로 전송됩니다. 출력은 코드, 설정 파일 또는 API 요청에 바로 붙여넣을 수 있습니다.
  4. 4
    애플리케이션에서 사용
    인코딩된 문자열을 필요한 곳에 붙여넣으세요 — Authorization 헤더, 데이터 URI, JSON 필드, 환경 변수, 또는 Kubernetes 시크릿. URL-safe 출력의 경우 패딩이 이미 제거되어 있습니다.

Base64 알파벳

Base64는 64개의 문자를 사용합니다: 대문자 A–Z(값 0–25), 소문자 a–z(26–51), 숫자 0–9(52–61), 그리고 값 62와 63에 대한 두 개의 특수 문자. 표준 RFC 4648 변형은 +와 /를 사용하며, URL-safe 변형은 URL과 파일명에서의 충돌을 피하기 위해 이를 -와 _로 대체합니다.

A–Z0–25ABCDEFGHIJKLMNOPQRSTUVWXYZ
a–z26–51abcdefghijklmnopqrstuvwxyz
0–952–610123456789
+, /62–63표준 RFC 4648 — URL과 파일명에서 사용 자제
-, _62–63URL-safe 변형(RFC 4648 §5) — URL과 파일명에서 안전

표준 Base64 vs URL-safe

표준 Base64 알파벳은 URL과 파일 경로에서 특수 문자인 +와 /를 사용합니다. URL-safe 변형은 이를 -와 _로 대체하고 일반적으로 패딩 문자 =를 생략합니다. JWT 토큰, 쿼리 문자열의 데이터, 파일명, 그리고 +나 /가 잘못 해석될 수 있는 모든 상황에 URL-safe 인코딩을 사용하세요.

입력표준URL-safe
ManTWFuTWFu
HelloSGVsbG8=SGVsbG8
AQQ==QQ
1+1=2MSsxPTI=MSsxPTI

일반적인 사용 사례

이메일 첨부 파일(MIME)
SMTP는 7비트 ASCII 텍스트용으로 설계되었습니다. Base64 인코딩은 MIME 표준에서 이메일 메시지에 이진 첨부 파일(이미지, PDF, 실행 파일)을 안전하게 포함시키기 위해 사용됩니다.
Data URI
data URI를 사용하여 이미지, 폰트, 기타 자산을 HTML 또는 CSS에 직접 삽입합니다: data:image/png;base64,... — 소형 리소스에 대한 추가 HTTP 요청을 제거합니다.
API 페이로드
REST API는 JSON에 이진 필드(파일 업로드, 암호화 키, 인증서)를 포함시킬 때 JSON에 이진 타입이 없으므로 Base64 인코딩을 요구하는 경우가 많습니다.
구성 파일
Kubernetes 시크릿, 환경 변수, CI/CD 구성은 이스케이프 문제를 피하기 위해 이진 시크릿과 인증서를 Base64 문자열로 저장하는 것이 일반적입니다.
HTTP Basic Auth
HTTP Authorization: Basic 헤더는 자격 증명을 Base64(사용자명:비밀번호)로 인코딩합니다. 이것은 암호화가 아니라 헤더 전송을 위한 인코딩만을 제공합니다.
JWT 토큰
JSON Web Token은 URL-safe Base64(base64url)를 사용하여 헤더 및 페이로드 세그먼트를 인코딩하여, 이스케이프 없이 URL과 HTTP 헤더에서 안전하게 사용할 수 있는 토큰을 만듭니다.

Base64를 사용하지 말아야 할 때

Base64는 전송 인코딩이지 보안 메커니즘이 아닙니다. 프로덕션에서 실제 문제를 일으키는 가장 흔한 오용 사례입니다:

보안이나 암호화에는 사용 금지
Base64는 쉽게 역변환할 수 있습니다 — 디코딩에 키나 비밀번호가 필요하지 않습니다. Base64 문자열을 본 사람은 누구든 몇 초 안에 디코딩할 수 있습니다. Base64를 암호화, 해싱 또는 접근 제어의 대체제로 절대 사용하지 마세요.
압축에는 사용 금지
Base64는 출력 크기를 약 33% 증가시킵니다. 압축의 반대입니다. 페이로드 크기를 줄이는 데 사용하지 마세요 — 대신 gzip, Brotli, 또는 zstd를 사용하세요.
바이너리 파일 저장에는 사용 금지
데이터베이스나 JSON API에 대용량 바이너리 파일을 Base64로 저장하면 스토리지와 메모리가 크게 낭비됩니다. 객체 스토리지(S3, R2, Cloudflare)를 사용하고 바이너리를 직접 제공하세요.

코드 예제

인기 있는 언어와 환경에서 문자열을 Base64로 인코딩하는 방법:

JavaScript (browser)
// Standard Base64
const encoded = btoa(unescape(encodeURIComponent(text)))

// URL-safe Base64 (no padding)
const urlSafe = btoa(unescape(encodeURIComponent(text)))
  .replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '')
Node.js
// Standard
const encoded = Buffer.from(text).toString('base64')

// URL-safe
const urlSafe = Buffer.from(text).toString('base64url')
Python
import base64

# Standard
encoded = base64.b64encode(text.encode()).decode()

# URL-safe (no padding)
url_safe = base64.urlsafe_b64encode(text.encode()).decode().rstrip('=')
CLI (bash)
# Standard
echo -n "Hello, World!" | base64

# URL-safe (requires sed)
echo -n "Hello, World!" | base64 | tr '+/' '-_' | tr -d '='

온라인 Base64 인코더 vs. 다른 도구

온라인에는 여러 Base64 인코더가 있습니다. 개발자 일상 사용에서의 주요 차별점은 프라이버시, 정확성, 변형 지원입니다.

완전 비공개 — 서버 없음
이 인코더는 네이티브 btoa API와 TextEncoder를 사용하여 완전히 브라우저 내에서 실행됩니다. 텍스트는 어떤 서버에도 전송되지 않습니다 — API 키, 토큰, 시크릿에 안전합니다.
Unicode 정확 인코딩
많은 온라인 Base64 도구는 비 ASCII 입력을 조용히 손상시킵니다. 이 도구는 먼저 UTF-8 바이트로 인코딩하여 이모지, CJK, 아랍어 및 모든 UTF-8 텍스트를 포함한 전체 Unicode를 올바르게 처리합니다.
한 곳에서 두 변형 모두
대부분의 도구는 표준 Base64만 제공합니다. 이 인코더는 자동 패딩 처리와 함께 표준(+/)과 URL-safe(-_) 변형을 모두 제공합니다 — 수동 문자 교체가 필요 없습니다.

자주 묻는 질문

Base64는 암호화와 같은가요?
아닙니다. Base64는 인코딩 방식이지 암호화가 아닙니다. 누구나 쉽게 되돌릴 수 있으며 디코딩에 키나 비밀번호가 필요하지 않습니다. 민감한 데이터를 보호하기 위해 Base64를 사용하지 마세요. 그 목적에는 적절한 암호화(AES, RSA)를 사용하세요.
Base64 출력이 = 또는 ==로 끝나는 이유는?
Base64는 3바이트(24비트) 그룹으로 작동하여 4개의 Base64 문자를 생성합니다. 입력 길이가 3의 배수가 아닌 경우, 출력 길이가 4의 배수가 되도록 패딩 문자(=)가 추가됩니다. = 하나는 마지막 그룹에 2바이트가 있었음을 의미하고, ==는 1바이트가 있었음을 의미합니다.
URL-safe Base64란 무엇인가요?
URL-safe Base64(RFC 4648 §5에 정의)는 +를 -로, /를 _로 대체하여 인코딩된 문자열이 퍼센트 인코딩 없이 URL, 파일명, HTTP 헤더에서 사용될 수 있도록 합니다. 패딩 문자 =도 일반적으로 생략됩니다.
Base64는 파일 크기를 얼마나 증가시키나요?
Base64 인코딩은 크기를 약 33% 증가시킵니다. 3바이트의 입력마다 4개의 출력 문자가 됩니다. 1MB 파일의 경우 Base64 출력은 약 1.37MB가 됩니다.
이 도구로 이진 파일을 인코딩할 수 있나요?
이 도구는 텍스트 문자열(UTF-8 바이트로 처리됨)을 인코딩합니다. 임의의 이진 파일(이미지, PDF, 실행 파일)을 인코딩하려면 원시 바이트를 읽는 언어 라이브러리나 CLI 도구를 사용하세요.
btoa()와 Buffer.from().toString('base64')의 차이점은?
btoa()는 Latin-1 문자열에서 작동하는 브라우저 내장 함수로, 비ASCII 문자에 대해서는 먼저 UTF-8 바이트로 인코딩하지 않으면(encodeURIComponent 사용) 오류가 발생합니다. Node.js의 Buffer.from(text).toString('base64')는 UTF-8 문자열을 직접 처리하며 서버 측에서 선호되는 방법입니다.
Base64가 바이너리 파일과 작동하나요?
이 도구는 텍스트 문자열을 UTF-8 바이트로 Base64 인코딩합니다. 바이너리 파일(이미지, PDF, 실행 파일)의 경우 원시 바이트를 읽는 CLI 도구나 언어 라이브러리를 사용하세요. 브라우저에서는 FileReader.readAsDataURL()을 사용하면 Base64로 인코딩된 바이너리 콘텐츠가 포함된 데이터 URI가 반환됩니다.
인코딩 크기 제한이 있나요?
이 도구는 서버 측 제한 없이 완전히 브라우저에서 실행됩니다. 실제 제한은 브라우저 메모리에 따라 다릅니다. 매우 큰 입력(수 MB 이상)의 경우 CLI 도구인 base64(Linux/macOS) 또는 certutil -encode(Windows)가 더 효율적입니다.