Base64 디코더

Base64로 인코딩된 텍스트 디코딩

Base64 입력

디코딩된 텍스트

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

Base64 디코딩이란?

Base64 디코딩은 Base64 인코딩의 역과정입니다: Base64로 인코딩된 ASCII 문자열을 원래의 이진 데이터나 텍스트로 변환합니다. 4개의 Base64 문자마다 원본 데이터의 3바이트로 디코딩됩니다. 디코더는 Base64 알파벳에서 각 문자를 찾고, 원래의 6비트 그룹을 재구성하여 8비트 바이트로 재조립합니다.

Base64로 인코딩된 데이터는 대소문자 알파벳, 숫자, +/(표준) 또는 -_(URL 안전) 문자를 사용하며, 끝에 한 개 또는 두 개의 패딩 문자 =가 붙는 것이 특징입니다. JWT 토큰, 이메일 첨부 파일, data URI, API 응답, 설정 파일 등 — 이진 또는 구조화된 데이터를 텍스트 전용 컨텍스트에 포함해야 하는 모든 곳에서 자주 등장합니다.

이 도구를 사용하는 이유

이 디코더는 표준 및 URL-safe Base64를 처리하고, 누락된 패딩을 자동으로 수정하며, 서버에 데이터를 전송하지 않고 브라우저에서 완전히 디코딩합니다.

패딩 자동 수정
많은 소스가 후행 = 문자 없이 Base64를 생성합니다. 이 도구는 디코딩 전에 누락된 패딩을 자동으로 계산하고 추가하여 InvalidCharacterError 예외를 방지합니다.
🛡️
두 변형 모두 지원
표준 Base64(+/)와 URL-safe Base64(-_)를 자동으로 감지하고 처리하므로 수동 변환 없이 어떤 소스에서든 토큰을 붙여넣을 수 있습니다.
🔒
완전 클라이언트 사이드
디코딩은 기본 atob API를 사용하여 브라우저에서 로컬로 수행됩니다. 시크릿이나 민감한 내용을 포함할 수 있는 데이터가 기기를 벗어나지 않습니다.
🌐
유니코드 출력
멀티바이트 문자, 이모지, CJK 스크립트를 포함한 완전한 유니코드로 UTF-8 인코딩된 텍스트를 올바르게 디코딩합니다.

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

계정 없음, 업로드 없음, 설치 없음. Base64 문자열을 입력란에 붙여넣으면 디코딩된 결과가 즉시 나타납니다. 모든 것이 브라우저에서 실행되므로 데이터는 절대 기기를 떠나지 않습니다.

  1. 1
    Base64 문자열 붙여넣기
    소스에서 Base64로 인코딩된 문자열 — JWT, API 응답, 이메일 첨부 파일 헤더, 또는 구성 파일 — 을 복사하여 입력란에 붙여넣으세요. 표준과 URL-safe 변형은 자동으로 감지됩니다.
  2. 2
    자동 감지 및 복구
    디코더는 입력이 표준 Base64(+/)를 사용하는지 URL-safe Base64(-_)를 사용하는지 식별하고, 누락된 = 패딩을 자동으로 보정합니다. 디코딩 전에 문자열을 수동으로 정규화할 필요가 없습니다.
  3. 3
    출력 확인
    디코딩된 텍스트가 출력란에 나타납니다. 원본 데이터가 UTF-8 텍스트이면 읽을 수 있는 문자로 표시됩니다. 이진 데이터는 그대로 표시됩니다. 입력에 디코딩할 수 없는 유효하지 않은 문자가 포함되면 오류 메시지가 표시됩니다.
  4. 4
    결과 복사 또는 사용
    복사를 클릭하여 디코딩된 출력을 가져가거나, 워크플로에서 직접 사용하세요. 결과를 다시 인코딩해야 하나요? 클릭 한 번으로 Base64 Encoder 도구로 전환하세요.

디코딩 작동 방식

각 Base64 문자는 6비트 값(0–63)에 매핑됩니다. 연속된 4개의 문자는 24비트를 제공하며, 원본 데이터의 3바이트로 디코딩됩니다. 아래 예는 'TWFu'가 'Man'으로 디코딩되는 방법을 보여줍니다:

예시 "Man" → TWFu → "Man"
문자인덱스6비트
T19010011
W22010110
F5000101
u46101110

네 개의 6비트 그룹(010011 010110 000101 101110)이 24비트로 연결된 후 세 개의 8비트 바이트로 분할됩니다: 01001101(M=77), 01100001(a=97), 01101110(n=110).

패딩 이해

Base64 인코딩은 입력 바이트를 3개 세트로 그룹화합니다. 입력 길이가 3으로 나누어지지 않을 때 마지막 그룹을 완성하기 위해 패딩 문자(=)가 추가됩니다. 디코딩 시 이 = 문자들은 제거되고 디코더는 인코딩 중에 추가된 여분의 영비트를 버려야 함을 인식합니다.

원본인코딩됨패딩 규칙
AQQ==1 byte → 2 padding chars
ABQUI=2 bytes → 1 padding char
ABCQUJD3 bytes → no padding needed

일반적인 사용 사례

JWT 페이로드 검사
JWT 토큰은 세 개의 URL-safe Base64 인코딩된 세그먼트로 구성됩니다. 두 번째 세그먼트(페이로드)를 디코딩하면 서명 키 없이도 클레임(사용자 ID, 역할, 만료 시간, 기타 메타데이터)이 드러납니다.
API 응답 읽기
REST API는 JSON 응답에서 이진 데이터(파일 내용, 썸네일, 암호화 자료)를 Base64로 인코딩하여 자주 반환합니다. 원본 데이터를 읽기 위해 필드를 디코딩하세요.
이메일 내용 디코딩
MIME 이메일 본문과 첨부 파일은 Base64로 인코딩되어 있습니다. 디코딩하면 원본 텍스트 내용이 드러나거나 이진 첨부 파일을 재구성할 수 있습니다.
Kubernetes 시크릿 추출
Kubernetes는 YAML 매니페스트에 시크릿 값을 Base64로 저장합니다. 디코딩하면 클러스터에 저장된 실제 비밀번호, 토큰, 키가 드러납니다 — 디버깅과 감사에 유용합니다.
구성 디버깅
환경 변수와 CI/CD 파이프라인 시크릿은 YAML 또는 JSON 구성 파일에 안전하게 저장하기 위해 Base64로 인코딩되는 경우가 많습니다. 디버깅 중 실제 값을 확인하기 위해 디코딩하세요.
Data URI 디코딩
Data URI는 Base64로 인코딩된 자산을 HTML/CSS에 직접 삽입합니다. Base64 부분을 디코딩하여 원본 이미지, 폰트, 또는 기타 삽입된 리소스를 추출하세요.

일반적인 함정

실제 Base64 디코딩 오류의 가장 빈번한 원인들:

누락된 패딩
Base64 문자열은 4의 배수인 길이를 가져야 합니다. 많은 API와 JWT 라이브러리는 간결함을 위해 후행 =를 제거합니다. 패딩을 다시 추가하세요: 누락된 = 수는 (4 - 길이 % 4) % 4입니다.
URL-safe 문자 미변환
URL-safe Base64는 +와 / 대신 -와 _를 사용합니다. URL-safe Base64를 직접 atob()나 base64.b64decode()에 전달하면 실패합니다. 표준 라이브러리로 디코딩하기 전에 항상 - → +와 _ → /로 대체하세요.
공백 및 줄 바꿈
PEM 인증서, MIME 데이터, 복사-붙여넣기된 Base64에는 76자마다 줄 바꿈이 포함되는 경우가 많습니다. InvalidCharacterError를 피하기 위해 디코딩 전에 모든 공백을 제거하세요.
이진 vs 텍스트 출력
Base64는 텍스트뿐만 아니라 모든 이진 데이터를 인코딩할 수 있습니다. 원본 데이터가 이진 파일(이미지, PDF)이었다면, UTF-8 텍스트로 디코딩하면 쓰레기 문자가 생성됩니다. 비텍스트 페이로드에는 적절한 이진 출력 방법을 사용하세요.

코드 예제

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

JavaScript (browser)
// Standard Base64
const decoded = decodeURIComponent(escape(atob(encoded)))

// URL-safe Base64 (restore padding first)
function decodeUrlSafe(str) {
  const padded = str.replace(/-/g, '+').replace(/_/g, '/')
  const pad = padded.length % 4
  return decodeURIComponent(escape(atob(padded + '='.repeat(pad ? 4 - pad : 0))))
}
Node.js
// Standard
const decoded = Buffer.from(encoded, 'base64').toString('utf8')

// URL-safe
const decoded = Buffer.from(encoded, 'base64url').toString('utf8')
Python
import base64

# Standard
decoded = base64.b64decode(encoded).decode('utf-8')

# URL-safe (add padding if missing)
padding = '=' * (-len(encoded) % 4)
decoded = base64.urlsafe_b64decode(encoded + padding).decode('utf-8')
CLI (bash)
# Standard
echo "SGVsbG8sIFdvcmxkIQ==" | base64 -d

# URL-safe (restore + and / first)
echo "SGVsbG8sIFdvcmxkIQ" | tr '-_' '+/' | base64 -d

Base64 Decoder vs. 대안 비교

Base64를 디코딩할 수 있는 도구는 여러 가지이지만, 개인 정보 보호, 속도, 편의성 면에서 차이가 있습니다.

이 도구
브라우저 기반, 즉각적, 비공개. 어떤 서버에도 데이터를 전송하지 않습니다. 표준 및 URL-safe Base64를 처리하고, 패딩 누락을 자동으로 수정하며, 오프라인에서도 작동합니다.
CLI (base64 -d)
스크립팅과 대용량 파일에 빠름. 터미널이 필요. URL-safe 입력(-_ → +/)은 수동 정규화가 필요합니다.
범용 도구
Curl, Postman, 브라우저 DevTools, 온라인 변환기 모두 Base64를 디코딩할 수 있습니다. 편의성은 다양하며, 일부는 데이터를 원격 서버로 전송합니다.

자주 묻는 질문

디코딩하면 왜 깨진 문자가 나오나요?
가장 일반적인 원인은 이진 데이터(이미지, 압축 파일)를 UTF-8 텍스트로 디코딩하는 것입니다 — 이진 바이트는 유효한 유니코드 시퀀스를 형성하지 않는 경우가 많습니다. 또 다른 원인은 +/를 기대하는 표준 디코더로 URL-safe Base64(-_)를 디코딩하는 것입니다. 소스가 어떤 변형을 사용하는지 확인하세요.
InvalidCharacterError란 무엇인가요?
atob()의 이 브라우저 오류는 입력에 URL-safe 문자(-또는_), 공백, 줄 바꿈, 비ASCII 문자 등 Base64 알파벳 외의 문자가 포함될 때 발생합니다. atob()를 호출하기 전에 공백을 제거하고 URL-safe 문자를 변환하세요.
내 Base64가 URL-safe인지 표준인지 어떻게 알 수 있나요?
- 또는 _ 문자를 찾으세요: 있으면 URL-safe Base64입니다. 표준 Base64는 +와 /를 사용합니다. URL-safe Base64는 일반적으로 패딩 문자 =도 생략합니다. JWT 토큰은 항상 URL-safe Base64를 사용합니다.
Base64 디코딩이 조용히 실패할 수 있나요?
네. 일부 디코더는 오류를 발생시키는 대신 잘못된 문자를 조용히 무시하여 잘못된 출력을 생성합니다. 디코더가 성공했다고 가정하지 말고 디코딩된 데이터가 예상 형식(JSON, 이미지 헤더 등)과 일치하는지 항상 확인하세요.
Base64 디코딩에 크기 제한이 있나요?
이 브라우저 기반 도구는 UI가 느려지기 전까지 수 메가바이트 크기의 Base64 문자열을 처리할 수 있습니다. 매우 큰 파일의 경우 CLI 도구나 서버 측 디코더를 사용하세요.
Base64가 한 개 또는 두 개의 = 기호로 끝나는 이유는?
=는 패딩 문자입니다. Base64는 3바이트를 4문자로 인코딩합니다. 원본 데이터 길이가 3의 배수가 아니면 총 출력 길이가 4의 배수가 되도록 한 개 또는 두 개의 = 문자가 추가됩니다. = 하나는 마지막 그룹에 2개의 입력 바이트가 있음을 의미하고, == 두 개는 1개의 입력 바이트를 의미합니다.
바이너리 파일, 이미지, PDF도 디코딩할 수 있나요?
네, 하지만 출력은 텍스트로 올바르게 표시되지 않을 수 있는 원시 이진 데이터입니다. 이진 콘텐츠의 경우 data URI를 '<'img'>' 또는 '<'a'>' 태그에서 직접 사용하거나, 스크립트를 사용하여 디코딩된 바이트를 파일로 저장하는 것이 좋습니다.
디코딩 크기 제한이 있나요?
이 도구는 서버 측 제한 없이 완전히 브라우저에서 실행됩니다. 실제 제한은 브라우저의 메모리에 따라 다릅니다. 매우 큰 Base64 문자열(수 MB 이상)은 base64 -d(Linux/macOS) 또는 certutil -decode(Windows)와 같은 CLI 도구로 처리하는 것이 좋습니다.