Skip to content

Base64 디코더 · 인코더 (Base64 Decoder & Encoder)

Base64를 온라인에서 무료로 인코딩하고 디코딩합니다. UTF-8과 이모지를 완벽 지원하는 실시간 변환으로, 100% 브라우저에서 처리되어 회원 가입이 필요 없습니다.

트래킹 없음 브라우저 실행 무료
텍스트
Base64
RFC 4648 준수와 UTF-8 정확성에 대해 검토되었습니다 — Go Tools 엔지니어링 팀 · Mar 22, 2026

Base64란 무엇인가요?

Base64는 RFC 4648이 정의한 바이너리-텍스트 인코딩 방식으로, 임의의 이진 데이터를 64자 알파벳을 사용하는 안전한 ASCII 문자열 표현으로 변환합니다. 이메일 첨부 파일부터 JSON Web Token, TLS 인증서에 이르기까지 인터넷에서 가장 널리 배포된 인코딩 중 하나입니다.

"Base 64 인코딩은 임의의 옥텟 시퀀스를 사람이 읽을 필요가 없는 형식으로 표현하도록 설계되었다." — RFC 4648, Section 1

Base64는 입력을 3바이트(24비트) 그룹으로 나눈 뒤 그 24비트를 다시 6비트짜리 네 그룹으로 분할하고, 각 그룹을 64개의 인쇄 가능한 문자 중 하나에 대응시킵니다: A-Z(0-25), a-z(26-51), 0-9(52-61), +(62), /(63). = 문자는 입력 길이가 3의 배수가 아닐 때 출력을 패딩하는 데 사용됩니다. Base64 인코딩은 이진 데이터를 텍스트 전용 채널에서 안전하게 다루기 위한 의도된 절충안으로 데이터 크기를 약 33% 증가시킵니다(RFC 4648).

Base64는 원래 이메일(MIME)과 초기 HTTP처럼 텍스트만 지원하는 채널에서 이진 데이터를 안전하게 전송하도록 설계되었습니다. 오늘날에는 데이터 URI로 HTML에 이미지를 포함하고, JWT 토큰이 클레임을 인코딩하며, PEM 인증서가 키를 감싸고, API가 JSON 페이로드로 이진 데이터를 실어 나르는 등 어디에나 쓰입니다.

Base64 인코더는 원시 바이트를 이 안전한 ASCII 표현으로 변환하고, 디코더는 역과정을 수행합니다. 이 도구의 모든 인코딩과 디코딩은 브라우저 내부에서 완전히 실행되므로 API 키, 토큰, 기타 민감한 값에도 안전하게 사용할 수 있으며 데이터가 서버로 업로드되지 않습니다.

이 무료 온라인 Base64 변환기로 Base64를 텍스트로 디코딩하거나 텍스트를 Base64로 브라우저에서 즉시 인코딩하십시오.

Base64는 다른 인코딩 및 데이터 도구와 함께 자주 사용됩니다. 예를 들어 API 페이로드에 Base64로 인코딩하기 전에 JSON 데이터를 포매팅하거나, 쿼리 파라미터에 넣기 전에 Base64 문자열을 URL 인코딩하거나, Base64로 인코딩된 다운로드를 디코딩한 뒤 MD5나 SHA-256으로 파일 체크섬을 검증할 수 있습니다.

// Encode plain text to Base64
const encoded = btoa('Hello, World!');
console.log(encoded); // → 'SGVsbG8sIFdvcmxkIQ=='

// Decode Base64 back to text
const decoded = atob('SGVsbG8sIFdvcmxkIQ==');
console.log(decoded); // → 'Hello, World!'

// UTF-8 safe encode (handles Chinese, emoji, any Unicode)
function encodeBase64(str) {
  const bytes = new TextEncoder().encode(str);  // to UTF-8 bytes
  return btoa(String.fromCharCode(...bytes));
}
console.log(encodeBase64('你好')); // → '5L2g5aW9'

주요 기능

실시간 변환

입력과 동시에 인코딩하고 디코딩합니다. 버튼을 누를 필요 없이 결과가 반대편 영역에 즉시 표시됩니다.

완전한 UTF-8 지원

TextEncoder/TextDecoder를 사용해 한국어, 중국어, 일본어, 아랍어, 이모지 등 모든 유니코드 텍스트를 올바르게 처리합니다.

양방향

어느 쪽 영역에 입력해도 됩니다. 왼쪽의 일반 텍스트는 오른쪽에서 Base64로 인코딩되고, 오른쪽의 Base64는 왼쪽에서 텍스트로 디코딩됩니다.

100% 브라우저 기반

모든 처리는 브라우저 내부에서 로컬로 이루어집니다. 서버 업로드도 추적도 없으며 데이터가 기기를 떠나지 않습니다.

오류 감지

유효하지 않은 Base64 입력을 즉시 감지하고 명확한 오류 메시지를 표시하여 무엇을 고쳐야 할지 바로 알 수 있습니다.

원클릭 복사

양쪽에 있는 복사 버튼으로 인코딩되거나 디코딩된 결과를 클립보드로 즉시 복사합니다.

예시

일반 텍스트

Hello, World!
SGVsbG8sIFdvcmxkIQ==

단순한 ASCII 텍스트를 Base64로 인코딩합니다

UTF-8 텍스트

你好世界 🌍
5L2g5aW95LiW55WMIPCfjI0=

UTF-8 인코딩으로 한자와 이모지를 올바르게 처리합니다

JSON 데이터

{"user":"alice","role":"admin"}
eyJ1c2VyIjoiYWxpY2UiLCJyb2xlIjoiYWRtaW4ifQ==

URL이나 헤더에 포함할 JSON 페이로드를 인코딩합니다

여러 줄 텍스트

Line 1
Line 2
Line 3
TGluZSAxCkxpbmUgMgpMaW5lIDM=

Base64는 줄 바꿈과 공백 문자를 그대로 보존합니다

사용 방법

  1. 1

    텍스트 또는 Base64 입력

    왼쪽 영역에 일반 텍스트를 입력하거나 붙여넣어 인코딩하거나, 오른쪽 영역에 Base64 문자열을 붙여넣어 디코딩하십시오. 변환은 즉각적이고 양방향입니다.

  2. 2

    실시간 결과 확인

    입력과 동시에 반대편 영역이 자동으로 갱신됩니다. 유효하지 않은 Base64 같은 오류는 즉시 표시됩니다.

  3. 3

    결과 복사

    어느 쪽이든 복사 버튼을 클릭해 인코딩되거나 디코딩된 결과를 클립보드로 복사합니다.

일반적인 활용 사례

데이터 URI 생성
이미지나 파일을 Base64로 인코딩하여 HTML이나 CSS에 데이터 URI로 직접 포함합니다.
JWT 디버깅
Base64로 인코딩된 JWT 토큰의 헤더와 페이로드를 디코딩하여 클레임과 만료 시각을 확인합니다.
API 개발
JSON API로 전송할 이진 데이터를 인코딩하거나, Base64 응답을 디코딩해 내용을 확인합니다.
이메일 인코딩
MIME으로 인코딩된 이메일 본문과 첨부 파일을 인코딩하거나 디코딩합니다.
인증서 검사
PEM으로 인코딩된 인증서와 키를 디코딩하여 이진 내용을 확인합니다.
설정 포함
설정 데이터나 비밀 값을 환경 변수나 설정 파일에 안전하게 포함하도록 인코딩합니다.

기술 세부사항

RFC 4648 준수
RFC 4648에 정의된 표준 Base64 인코딩을 구현하며 A-Z, a-z, 0-9, +, / 알파벳과 = 패딩을 사용합니다.
TextEncoder를 통한 UTF-8
Web API TextEncoder로 유니코드 문자열을 UTF-8 바이트로 변환한 뒤 인코딩하므로 모든 문자 체계와 이모지가 올바르게 처리됩니다.
브라우저 기반 처리
모든 인코딩은 외부 라이브러리나 서버 호출 없이 네이티브 btoa()/atob()와 TextEncoder/TextDecoder를 사용합니다.

모범 사례

Base64를 보안 용도로 사용하지 마세요
Base64는 인코딩이며 암호가 아닙니다. 비밀번호, 토큰, 민감한 데이터를 '보호'하려는 목적으로 사용하지 말고 반드시 적절한 암호를 사용하십시오.
크기 증가에 유의
Base64는 약 33%의 오버헤드를 추가합니다. 큰 파일은 Base64 인코딩보다 이진 전송을 고려하십시오.
UTF-8 인코딩 사용
비 ASCII 문자(한자, 이모지)가 올바르게 처리되도록 Base64 인코딩 전에 텍스트를 UTF-8 바이트로 변환하십시오.

자주 묻는 질문

Base64 인코딩은 무엇인가요?
Base64는 이진 데이터를 ASCII 인쇄 가능 문자 문자열로 표현하는 바이너리-텍스트 인코딩 방식입니다. 입력 3바이트마다 A-Z, a-z, 0-9, +, / 집합의 ASCII 4문자로 변환합니다. '=' 문자는 입력 길이가 3의 배수가 아닐 때 패딩으로 사용됩니다. Base64는 RFC 4648에 정의되어 있으며 이메일(MIME), 데이터 URI, JWT, HTTP 인증 등에서 널리 사용됩니다.
이 도구 사용 시 데이터는 안전한가요?
예, 완전히 안전합니다. 모든 인코딩과 디코딩은 JavaScript의 네이티브 btoa(), atob(), TextEncoder, TextDecoder API로 브라우저 내부에서 로컬 처리됩니다. 서버 요청, 쿠키, 입력 내용에 대한 분석, 데이터 저장소가 전혀 없으므로 데이터가 기기를 떠나지 않습니다.
한자나 이모지 같은 비 ASCII 문자는 어떻게 처리되나요?
이 도구는 TextEncoder API로 입력 텍스트를 먼저 UTF-8 바이트로 변환한 뒤 해당 바이트를 Base64로 인코딩합니다. 덕분에 한자(你好), 일본어(こんにちは), 아랍어, 이모지(🎉)처럼 ASCII 범위를 벗어난 문자도 올바르게 인코딩됩니다. 디코딩 시에는 Base64 → 바이트 → UTF-8 텍스트 순으로 TextDecoder를 사용해 역순으로 처리합니다.
Base64는 암호인가요?
아니요. Base64는 인코딩이며 암호가 아닙니다. Base64 문자열은 누구나 즉시 원본 데이터로 디코딩할 수 있으므로 보안 기능을 제공하지 않습니다. Base64는 데이터 전송(이진 데이터를 텍스트 전용 채널에서 안전하게 전달)을 위한 것이지 비밀 보호를 위한 것이 아닙니다. 데이터를 보호해야 한다면 AES나 RSA 같은 적절한 암호를 먼저 적용하고, 필요하면 그 결과를 Base64로 인코딩하십시오.
Base64는 주로 어디에 사용되나요?
Base64는 다음과 같은 곳에서 폭넓게 사용됩니다: (1) 데이터 URI — HTML/CSS에 이미지를 직접 'data:image/png;base64,...' 형태로 포함, (2) 이메일 — 첨부 파일과 비 ASCII 콘텐츠의 MIME 인코딩, (3) JWT — 헤더와 페이로드를 Base64URL로 인코딩, (4) HTTP Basic 인증 — 자격 증명을 'username:password' 형태로 Base64 인코딩하여 전송, (5) API — JSON 페이로드로 이진 데이터를 전송, (6) 인증서 — PEM 형식이 DER로 인코딩된 인증서를 Base64로 감쌉니다.
표준 Base64와 URL-safe Base64의 차이는 무엇인가요?
표준 Base64는 '+'와 '/'를 사용하지만 이 문자들은 URL에서 특별한 의미를 갖습니다. +는 공백을 나타내고 /는 경로 구분 기호입니다. URL-safe Base64(RFC 4648 역시 정의)는 '+'를 '-'로, '/'를 '_'로 바꾸어 퍼센트 인코딩 없이 URL과 파일 이름에 안전하게 사용할 수 있게 해 줍니다. 표준 Base64를 URL에 그대로 써야 한다면 퍼센트 인코딩을 적용하면 됩니다. 이 도구는 표준 Base64를 사용합니다. URL-safe로 변환하려면 결과에서 +를 -로, /를 _로 바꾸면 됩니다.
Base64는 왜 데이터 크기를 늘리나요?
Base64는 입력 3바이트를 출력 4문자로 인코딩하므로 약 33%의 크기 증가가 발생합니다. ASCII 인쇄 가능 문자 64개(각 6비트)로 8비트 바이트를 표현하기 때문입니다. 예를 들어 13자 문자열 'Hello, World!'는 20자의 Base64 문자열 'SGVsbG8sIFdvcmxkIQ=='가 됩니다. 이 비용은 인코딩된 데이터를 텍스트 전용 프로토콜로 안전하게 전송할 수 있다는 장점으로 상쇄됩니다.
파일을 Base64로 인코딩하려면 어떻게 하나요?
macOS나 Linux에서는 명령줄로 `base64 < myfile.png > myfile.b64` 를 사용합니다. Windows에서는 PowerShell로 `[Convert]::ToBase64String([IO.File]::ReadAllBytes('myfile.png'))` 를 사용하십시오. JavaScript(Node.js)에서는 `fs.readFileSync('myfile.png').toString('base64')` 가 가능합니다. Python에서는 `import base64; base64.b64encode(open('myfile.png','rb').read())` 를 사용합니다. 이 브라우저 도구는 텍스트 입력을 다루며, 대용량 이진 파일에는 명령줄 도구가 더 효율적입니다.
Base64를 HTML과 CSS에서 사용할 수 있나요?
예. Base64는 작은 자원을 HTML이나 CSS에 직접 포함하여 추가 HTTP 요청을 없애는 데이터 URI에 흔히 사용됩니다. HTML에서는 `` 형태, CSS에서는 `background-image: url('data:image/svg+xml;base64,PHN2Zy...')` 형태로 사용합니다. 작은 아이콘이나 SVG(약 5 KB 이하)에 적합합니다. 더 큰 파일은 파일 참조가 더 효율적인데, Base64가 33%의 오버헤드를 추가하고 브라우저 캐시를 우회하기 때문입니다.
최대 입력 크기는 얼마인가요?
이 브라우저 기반 도구는 약 5 MB 텍스트까지 효율적으로 처리합니다. 매우 큰 파일이나 이진 데이터는 macOS와 Linux에서 제공되는 'base64' 명령이나 'openssl base64' 같은 명령줄 도구를 사용하는 편이 좋습니다. Base64 표준 자체에는 크기 제한이 없습니다.
Base64 알파벳에는 어떤 문자가 있나요?
표준 Base64 알파벳(RFC 4648)은 64개 문자로 구성됩니다: 대문자 A-Z(값 0-25), 소문자 a-z(값 26-51), 숫자 0-9(값 52-61), 더하기 기호 +(값 62), 슬래시 /(값 63). 등호 =는 패딩으로 사용됩니다. URL-safe 변형(Base64URL)은 +를 -로, /를 _로 바꾸어 URL 예약 문자와 충돌을 피합니다.
HTML 이메일 템플릿에 작은 이미지를 포함해야 합니다. Base64 데이터 URI를 사용해야 하나요, 아니면 외부에 호스팅해야 하나요?
HTML 이메일에서는 로고나 아이콘처럼 작은 이미지의 경우 Base64 데이터 URI가 실제로 권장되는 접근입니다. Outlook, Gmail 등 많은 이메일 클라이언트는 외부 호스팅 이미지를 기본적으로 차단하므로 사용자가 "이미지 표시"를 눌러야 볼 수 있습니다. 이미지를 Base64 데이터 URI(data:image/png;base64,...)로 포함하면 이 문제가 완전히 사라집니다. 이미지가 이메일 자체의 일부가 되기 때문입니다. 단점은 이메일 파일 크기입니다. Base64는 약 33% 오버헤드를 추가하므로 10 KB PNG는 약 13 KB가 됩니다. 호환성을 위해 포함되는 이미지는 20 KB 이하로 유지하십시오. 더 큰 이미지나 배경에는 외부 호스팅이 더 실용적입니다. 이 도구로 이미지 파일의 바이트를 Base64로 인코딩해 포함하면 됩니다.
Base64 인코딩 문자열에 포함된 +와 /가 URL 파라미터를 망가뜨리는 이유는 무엇인가요?
표준 Base64는 64개 문자 중 +와 /를 사용하는데 두 문자 모두 URL에서 특별한 의미를 갖습니다(+는 공백, /는 경로 구분 기호). 표준 Base64 문자열을 인코딩 없이 URL 쿼리 파라미터에 넣으면 값이 손상됩니다. 해결책은 RFC 4648에 정의된 URL-safe Base64(Base64URL이라고도 함)를 사용하는 것이며, +를 -로, /를 _로 바꿉니다. 이 변형은 JWT 토큰, OAuth 흐름, URL에 등장하는 모든 Base64 값에서 사용됩니다. 표준 Base64를 URL-safe로 바꾸려면 출력에서 모든 +를 -로, /를 _로 바꾸고 필요하면 = 패딩 문자를 제거하면 됩니다.
JWT 토큰을 디코딩하려고 합니다. Base64URL 디코딩은 어떻게 동작하며 표준 Base64와 어떻게 다른가요?
JWT(JSON Web Token)는 점으로 구분된 세 부분(header.payload.signature)으로 구성됩니다. 헤더와 페이로드는 각각 표준 Base64가 아닌 Base64URL로 인코딩됩니다. Base64URL은 표준 Base64와 두 가지 점에서 다릅니다. +를 -로, /를 _로 바꾸고, = 패딩 문자를 생략합니다. JWT를 수동으로 디코딩하려면 점으로 분할하고 첫 번째 또는 두 번째 세그먼트를 택한 뒤, -를 +로 _를 /로 바꾸고, 길이가 4의 배수가 되도록 필요하면 = 패딩을 추가한 후 Base64 디코딩을 수행하면 됩니다. 실제로는 전용 JWT 디코더가 더 편하지만, Base64URL 인코딩을 이해하면 코드에서 토큰을 다루거나 원시 토큰 값을 디버깅할 때 유용합니다.

JSON 포맷터 (JSON Formatter)

인코딩 & 포매팅

브라우저에서 JSON을 즉시 포매팅하고 유효성 검사를 수행합니다. 온라인 도구로 구문 검사, 오류 감지, 최소화, 복사를 지원하며 데이터는 서버로 전송되지 않습니다.

URL 인코더 · 디코더 (URL Encoder & Decoder)

인코딩 & 포매팅

URL을 실시간 인코딩·디코딩하고 내장 파서로 구조를 분석합니다. encodeURI와 encodeURIComponent 모드를 온라인에서 지원하며 데이터는 브라우저를 떠나지 않습니다.

진법 변환기 (Number Base Converter)

변환 도구

2진수, 16진수, 10진수, 8진수 및 임의 진법(2-36)을 즉시 변환합니다. 온라인에서 무료로 사용할 수 있으며 모든 처리는 브라우저에서 이루어집니다.

이미지 압축기 · JPEG, PNG, WebP 온라인 압축

변환 도구

JPEG, PNG, WebP 이미지를 브라우저에서 최대 80% 압축합니다. 업로드 없이 20장 일괄 처리, 품질 조절, 전후 비교를 무료로 지원합니다.

길이 변환기 · 미터법, 야드파운드법, 천문 단위

변환 도구

16개 길이 단위를 즉시 변환합니다. 미터법, 야드파운드법, 해리, 천문 단위까지. 1 inch = 2.54 cm. 온라인에서 무료로, 브라우저에서 바로 실행됩니다.

MD5 해시 생성기 · 파일 체크섬 도구

보안 도구

MD5, SHA-256, SHA-1, SHA-512 해시를 온라인에서 무료로 생성합니다. 브라우저에서 텍스트나 파일을 해싱하고 체크섬을 검증하며 결과를 복사할 수 있습니다.