liminfo

Base64 Tool

Base64 인코딩/디코딩

Base64 Tool 소개

Base64 도구는 텍스트를 Base64 형식으로 인코딩하거나 Base64 문자열을 원래 텍스트로 디코딩하는 무료 온라인 변환기입니다. Base64는 바이너리 데이터를 64개의 ASCII 문자(A-Z, a-z, 0-9, +, /)로 표현하는 인코딩 방식으로, 이메일(MIME), HTTP 헤더, JSON 페이로드, XML 문서 등 텍스트 기반 프로토콜에서 바이너리 데이터를 안전하게 전달할 수 있게 해줍니다. 한국어, 중국어, 일본어, 이모지 등 유니코드 문자도 완벽하게 지원합니다.

Base64 인코딩은 웹 개발에서 매일 사용됩니다. CSS data URI로 이미지를 삽입하거나, API 인증 자격 증명을 인코딩하거나, Kubernetes 시크릿을 관리하거나, MIME 이메일 첨부 파일을 처리할 때 필요합니다. 웹훅용 JSON 페이로드 인코딩, API 응답에서 받은 Base64 문자열 디코딩, JWT 토큰 내 데이터 디버깅 등 다양한 작업에 활용할 수 있습니다.

모든 인코딩과 디코딩 과정은 브라우저 내에서 JavaScript의 btoa()/atob() 함수와 적절한 UTF-8 처리를 통해 수행됩니다. 데이터가 외부 서버로 전송되지 않으므로 API 키, 비밀번호, 개인정보 등 민감한 정보도 안심하고 인코딩할 수 있습니다.

주요 기능

  • 원클릭 양방향 Base64 인코딩 및 디코딩
  • 한국어, 중국어, 일본어, 이모지 등 UTF-8 및 유니코드 완벽 지원
  • 인코딩 전후 바이트 크기 표시로 데이터 크기 변화 즉시 확인
  • 결과를 입력으로 전환하는 스왑 버튼으로 역방향 변환 간편 수행
  • 인코딩/디코딩 결과를 바로 복사할 수 있는 클립보드 복사 기능
  • 잘못된 Base64 문자열 입력 시 구체적인 오류 원인 안내
  • 수 킬로바이트 이상의 대용량 텍스트 인코딩/디코딩 지원
  • 인코딩 결과의 문자 단위 정확한 확인을 위한 고정폭 글꼴 표시

자주 묻는 질문

Base64 인코딩이란 무엇인가요?

Base64는 RFC 4648에 정의된 바이너리-텍스트 인코딩 방식으로, 모든 바이너리 데이터를 64개의 인쇄 가능한 ASCII 문자로 변환합니다. 대문자 A-Z(26자), 소문자 a-z(26자), 숫자 0-9(10자), 더하기(+), 슬래시(/)를 사용하며, 등호(=)는 패딩에 사용됩니다. 입력 데이터 3바이트마다 4개의 Base64 문자로 인코딩됩니다. 이메일(MIME), URL, JSON, XML, HTTP 헤더 등 텍스트 기반 시스템에서 바이너리 데이터를 손상 없이 전달할 수 있게 해줍니다.

웹 개발에서 Base64를 왜 사용하나요?

Base64는 웹 개발에서 다양한 용도로 사용됩니다. (1) Data URI — CSS나 HTML에 작은 이미지, 폰트, SVG를 data:image/png;base64,... 형태로 직접 삽입하여 HTTP 요청을 줄일 수 있습니다. (2) API 인증 — HTTP Basic Auth에서 사용자명:비밀번호를 Base64로 인코딩합니다. (3) JWT 토큰 — JSON Web Token의 헤더와 페이로드가 Base64URL로 인코딩됩니다. (4) 이메일 첨부 — MIME 인코딩에서 바이너리 파일을 텍스트 기반 프로토콜에 삽입합니다. (5) Kubernetes 시크릿 — YAML 매니페스트에 설정값을 Base64 문자열로 저장합니다.

Base64 인코딩은 데이터 크기를 얼마나 증가시키나요?

Base64 인코딩은 데이터 크기를 약 33% 증가시킵니다. 입력 3바이트가 출력 4바이트가 되는 4:3 비율입니다. 예를 들어 3KB 파일은 Base64 인코딩 후 약 4KB가 됩니다. 끝에 패딩 문자(=)로 1~2바이트가 추가될 수도 있습니다. 이 도구는 입력과 출력의 바이트 크기를 모두 표시하여 실제 데이터 크기 변화를 정확하게 확인할 수 있습니다.

Base64 인코딩은 암호화와 같은 건가요?

아닙니다. Base64는 암호화가 아니며 보안 기능이 전혀 없습니다. Base64는 되돌릴 수 있는 인코딩 방식으로, 누구든지 키나 비밀번호 없이 Base64 문자열을 원래 데이터로 복원할 수 있습니다. 순수하게 바이너리 데이터를 텍스트로 안전하게 변환하는 포맷 변환 수단일 뿐입니다. 민감한 데이터를 보호해야 한다면 실제 암호화(AES, RSA 등)를 사용하고, 필요 시 암호화된 결과를 Base64로 인코딩하여 전송하세요.

Base64와 Base64URL의 차이점은 무엇인가요?

표준 Base64는 63번째와 64번째 문자로 +와 /를 사용하고, 패딩에 =를 사용합니다. Base64URL(RFC 4648 Section 5)은 +를 -(하이픈)으로, /를 _(밑줄)로 대체하여 URL과 파일명에서 안전하게 사용할 수 있게 합니다. 또한 패딩(=)을 생략하는 것이 일반적입니다. JWT 토큰의 헤더와 페이로드는 Base64URL 인코딩을 사용합니다. 이 도구는 표준 Base64 인코딩을 사용하며, Data URI, MIME 인코딩, API 페이로드 등 대부분의 용도에 적합합니다.

Base64와 URL 인코딩(퍼센트 인코딩) 중 어떤 것을 사용해야 하나요?

임의의 바이너리 데이터(이미지, 파일, 암호화된 바이트)를 텍스트 문자열로 변환해야 하거나, JSON 값이나 XML, 이메일 본문에 데이터를 삽입해야 할 때는 Base64를 사용하세요. URL, 쿼리 파라미터, 폼 데이터에 특수 문자를 포함해야 할 때는 URL 인코딩을 사용하세요. Base64는 모든 바이트를 다시 인코딩하는 전체 데이터 변환이고, URL 인코딩은 이스케이프가 필요한 문자만 변경합니다.

Base64가 한국어 등 유니코드 텍스트를 처리할 수 있나요?

JavaScript의 표준 Base64 함수(btoa/atob)는 Latin-1 문자만 직접 처리합니다. 이 도구는 Base64 인코딩 전에 UTF-8 인코딩 레이어(encodeURIComponent/decodeURIComponent)를 적용하여 한국어, 중국어, 일본어, 아랍어, 이모지 등 모든 유니코드 문자를 올바르게 처리합니다. 이 UTF-8 전처리가 없으면 비라틴 문자를 Base64 인코딩할 때 "character out of range" 오류가 발생합니다.

손상된 것 같은 Base64 문자열은 어떻게 디코딩하나요?

디코딩이 실패하면 다음 사항을 확인하세요. (1) 문자열에 유효한 Base64 문자(A-Z, a-z, 0-9, +, /, =)만 포함되어 있는지 확인합니다. (2) 복사-붙여넣기 과정에서 삽입된 줄바꿈이나 공백이 없는지 확인하고 제거합니다. (3) 패딩이 올바른지 확인합니다(문자열 길이가 4로 나누어 떨어져야 합니다). (4) +와 / 대신 -와 _가 사용되었다면 Base64URL 인코딩일 수 있으므로, 해당 문자를 표준 Base64 문자로 교체하세요. 이 도구는 구체적인 오류 메시지를 제공하여 디코딩 실패 원인을 진단하는 데 도움을 줍니다.