ByteCompress

Base64 디코더

Base64로 인코딩된 문자열을 원래의 일반 텍스트 또는 바이너리 표현으로 디코딩합니다. 표준 RFC 4648 및 URL 안전 Base64 알파벳을 모두 지원하며, JWT 토큰도 포함됩니다.

0 chars
FreeClient-sideNo signup

Base64 문자열은 설계상 불투명합니다 - SGVsbG8sIFdvcmxkIQ==Hello, World!로 디코딩될 때까지 의미가 없습니다. RFC 4648에 정의된 Base64는 3개의 입력 바이트를 4개의 출력 문자로 인코딩하며, 대략 33%의 오버헤드를 추가합니다. 이 디코더는 브라우저의 네이티브 atob()TextDecoder API를 사용하여 이를 반대로 수행합니다. 표준 Base64와 JWT 및 OAuth 토큰에서 사용되는 URL 안전 변형(-_ 대신 +/)을 모두 지원합니다. 어떤 것도 서버에 업로드되지 않습니다.

Base64 디코딩 방법

  1. Base64로 인코딩된 문자열을 입력 필드에 붙여넣습니다.
  2. 데이터가 원래 인코딩된 방식에 맞게 표준 또는 URL 안전 모드를 선택합니다.
  3. 디코딩된 일반 텍스트가 즉시 출력 패널에 나타납니다.
  4. 복사를 클릭하여 결과를 복사합니다.

Base64 디코딩 작동 원리

디코딩 과정

디코딩은 인코딩을 정확히 반대로 수행합니다. 각 Base64 문자는 알파벳 테이블을 사용하여 6비트 값으로 다시 매핑됩니다. 네 개의 연속된 문자(24비트)는 세 바이트를 재구성합니다. 브라우저의 atob() 함수는 표준 Base64를 네이티브로 처리합니다. URL 안전 Base64의 경우, -_는 디코딩 전에 +/로 변환됩니다. 그 결과 UTF-8 바이트 시퀀스는 TextDecoder를 사용하여 유니코드 문자열로 디코딩됩니다.

누락된 패딩 처리

표준 Base64는 문자열 길이를 4의 배수로 만들기 위해 = 패딩이 필요합니다. JWT 및 OAuth 토큰은 크기를 줄이기 위해 패딩을 제거합니다. 이 디코더는 문자열 길이에 따라 필요한 패딩을 자동으로 계산하고 추가합니다. 문자열 길이가 4로 나눈 나머지가 2이면 하나의 =가 필요하고, 3이면 두 개의 = 문자가 필요합니다.

예시

입력 (표준 Base64)

SGVsbG8sIFdvcmxkIQ==

출력

Hello, World!

일반적인 사용 사례

  • JWT 토큰 검사 - 라이브러리 없이 클레임을 읽기 위해 헤더와 페이로드 섹션을 디코딩합니다.
  • HTTP 기본 인증 - Authorization: Basic dXNlcjpwYXNz 헤더를 디코딩하여 내장된 자격 증명을 확인합니다.
  • 데이터 URI 검사 - data:image/png;base64,... URI의 Base64 부분을 디코딩합니다.
  • API 응답 디버깅 - 일부 API는 JSON 응답에서 바이너리 콘텐츠를 Base64로 인코딩합니다.

모범 사례

  • 올바른 모드(표준 vs URL 안전)를 선택하세요 - 잘못된 모드를 사용하면 출력이 엉망이 됩니다.
  • JWT 토큰의 경우, 헤더(첫 번째 부분)와 페이로드(두 번째 부분)만 디코딩하세요; 세 번째 부분은 암호화 서명이며 인코딩된 텍스트가 아닙니다.
  • 출력이 읽을 수 없는 문자라면, 원본 데이터는 바이너리(이미지, PDF 등)이며 텍스트가 아닙니다.
  • Base64 디코딩은 보안 검사가 아닙니다 - 누구나 이를 디코딩할 수 있습니다.

텍스트를 Base64로 다시 인코딩하려면 Base64 인코더를 사용하세요. URL 인코딩된 데이터의 경우 URL 디코더를 사용하세요. JWT를 완전히 검사하려면 URL 안전 모드를 선택하여 점으로 구분된 첫 두 부분을 별도로 디코딩하세요.

자주 묻는 질문

이 도구로 JWT 토큰을 어떻게 디코딩하나요?

JWT는 점으로 구분된 세 부분으로 구성됩니다: header.payload.signature. 헤더(첫 번째 부분) 또는 페이로드(두 번째 부분)를 복사하고 URL 안전 모드를 선택한 후 디코더에 붙여넣습니다. 출력은 알고리즘(헤더) 또는 클레임(페이로드)이 포함된 JSON 객체입니다. 서명을 디코딩하지 마세요 - 이는 암호화 해시이며 Base64로 인코딩된 JSON 문자열이 아닙니다.

디코딩된 출력에 이상한 문자가 표시되는 이유는 무엇인가요?

이는 세 가지 중 하나를 의미합니다: (1) 원본 데이터가 텍스트가 아닌 바이너리(이미지, PDF, zip)였다; (2) 잘못된 모드를 선택했다 - 표준과 URL 안전 모드 간에 전환해 보세요; (3) 원본 텍스트가 UTF-8 이외의 문자 집합을 사용하여 인코딩되었다. 먼저 모드를 전환해 보세요. 출력이 여전히 읽을 수 없다면, 원본 데이터는 아마도 바이너리일 것입니다.

디코딩이 작동하려면 패딩 문자(==)가 필요한가요?

표준 Base64는 문자열 길이를 4의 배수로 만들기 위해 패딩이 필요합니다. 이 디코더는 누락된 패딩을 자동으로 추가하며, 이는 후행 = 문자를 제거하는 JWT 및 OAuth 토큰에 중요합니다. 문자열을 있는 그대로 붙여넣으면 디코더가 패딩을 자동으로 처리합니다.

여기서 디코딩할 때 내 민감한 데이터는 안전한가요?

네. 디코딩은 브라우저에서 atob() 및 TextDecoder API를 사용하여 완전히 실행됩니다. 붙여넣은 토큰, 자격 증명 및 개인 데이터는 서버로 전송되지 않으며, 기록되거나 저장되지 않습니다. 디코딩하는 동안 브라우저의 네트워크 탭을 열면 아웃바운드 요청이 없음을 확인할 수 있습니다.

표준 Base64와 URL 안전 Base64의 차이점은 무엇인가요?

표준 Base64 (RFC 4648 §4)는 + 및 /를 사용합니다. URL 안전 Base64 (RFC 4648 §5)는 URL, 파일 이름 및 HTTP 헤더의 충돌을 피하기 위해 이를 - 및 로 대체합니다. JWT, OAuth 토큰 및 PKCE 코드 검증자는 모두 URL 안전 Base64를 사용합니다. 문자열에 - 또는 가 포함되어 있다면 URL 안전 모드를 선택하세요.