Base64 인코딩/디코딩

텍스트를 Base64로 인코딩하거나 Base64 문자열을 원래 텍스트로 디코딩합니다. UTF-8을 완벽하게 지원합니다.

Base64 인코딩이란?

Base64는 바이너리 데이터를 64개의 인쇄 가능한 ASCII 문자로 변환하는 인코딩 방식입니다. 이메일 첨부파일, 웹 데이터 URI, API 인증 등 텍스트 기반 프로토콜에서 바이너리 데이터를 안전하게 전송하기 위해 널리 사용됩니다. 이 도구는 브라우저에서 모든 처리가 이루어지므로 데이터가 서버로 전송되지 않습니다.

Base64 활용 팁

  • Base64는 암호화가 아닙니다. 민감한 데이터 보호에는 적절한 암호화를 사용하세요.
  • Base64 인코딩은 원본 대비 약 33% 크기가 증가합니다. 대용량 파일에는 주의하세요.
  • URL에 Base64를 사용할 때는 URL-safe 변형(+/ 대신 -_ 사용)을 고려하세요.
  • JWT 토큰은 Base64URL로 인코딩된 JSON 데이터입니다. 이 도구로 페이로드를 확인할 수 있습니다.
  • 이미지를 Base64로 변환하면 CSS/HTML에 직접 임베딩할 수 있지만, 파일 크기가 커집니다.

Base64 인코딩 완벽 가이드

Base64 인코딩/디코딩 도구는 텍스트와 Base64 문자열 간의 변환을 즉시 수행하는 무료 온라인 도구입니다. 모든 처리는 브라우저에서만 이루어지며, 데이터가 서버로 전송되지 않아 완벽한 프라이버시를 보장합니다. UTF-8을 완벽하게 지원하여 한글, 일본어, 중국어, 이모지 등 모든 유니코드 문자를 인코딩하고 디코딩할 수 있습니다. 개발자, 시스템 관리자, 데이터 엔지니어 등 다양한 직군에서 일상적으로 사용하는 필수 도구입니다.

주요 기능

  • UTF-8 완벽 지원 — 한글, 일본어, 이모지 등 모든 유니코드 문자 처리
  • 양방향 변환 — 인코딩과 디코딩 모두 지원하는 올인원 도구
  • 브라우저 전용 처리 — 데이터가 서버로 전송되지 않아 완벽한 보안
  • 즉시 변환 — 버튼 클릭 한 번으로 결과 확인
  • 원클릭 복사 — 변환 결과를 클립보드에 즉시 복사

Base64 인코딩이 중요한 이유

Base64는 현대 웹 개발과 데이터 통신에서 필수적인 역할을 합니다. 텍스트 기반 프로토콜(HTTP, SMTP, JSON 등)은 바이너리 데이터를 직접 처리하지 못하기 때문에, 이미지, 파일, 인증 정보 등을 안전하게 전송하려면 Base64 인코딩이 필요합니다.
  • 이메일 첨부파일 (MIME): 이메일 프로토콜(SMTP)은 7비트 ASCII 기반이므로, 이미지나 문서 같은 바이너리 첨부파일은 Base64로 인코딩하여 전송합니다. 모든 이메일 클라이언트가 이 방식을 사용합니다.
  • 데이터 URI (Data URL): HTML이나 CSS에 이미지를 직접 임베딩할 때 data:image/png;base64,... 형식을 사용합니다. HTTP 요청 수를 줄여 페이지 로딩 속도를 개선할 수 있습니다.
  • API 인증 (Basic Auth): HTTP Basic Authentication은 username:password를 Base64로 인코딩하여 Authorization: Basic ... 헤더로 전송합니다.
  • JWT 토큰: JSON Web Token은 헤더와 페이로드를 Base64URL로 인코딩합니다. 서명 검증 없이도 페이로드를 디코딩하여 토큰 내용을 확인할 수 있습니다.
  • JSON/XML 내 바이너리 데이터: 텍스트 기반 데이터 형식에서 이미지, 파일 등 바이너리 데이터를 포함할 때 Base64 인코딩을 사용합니다.

Base64 인코딩 작동 원리

Base64는 입력 데이터를 6비트 단위로 나누어 64개의 문자 중 하나로 매핑하는 방식으로 작동합니다.
  • 문자 집합: A-Z (0-25), a-z (26-51), 0-9 (52-61), + (62), / (63)의 총 64개 문자를 사용합니다.
  • 변환 과정: 입력 데이터 3바이트(24비트)를 4개의 6비트 그룹으로 나누고, 각 그룹을 해당하는 Base64 문자로 변환합니다.
  • 패딩: 입력 길이가 3의 배수가 아닌 경우, 나머지를 0으로 채우고 결과 끝에 = 문자를 추가합니다. 1바이트 나머지는 ==, 2바이트 나머지는 =이 붙습니다.
  • 예시: "Hi" → 바이너리 01001000 01101001 → 6비트 그룹 010010 000110 1001(00) → Base64 "SGk="

Base64 변형(Variants)

Base64에는 용도에 따라 여러 변형이 존재합니다.
  • 표준 Base64 (RFC 4648): A-Z, a-z, 0-9, +, / 문자를 사용하며, = 패딩을 포함합니다. 가장 일반적인 형식으로 이메일, MIME 등에서 사용됩니다.
  • Base64URL (RFC 4648 §5): + 대신 -, / 대신 _를 사용합니다. URL과 파일명에서 안전하게 사용할 수 있습니다. JWT, URL 쿼리 파라미터에서 사용됩니다. 패딩(=)을 생략하는 경우가 많습니다.
  • MIME Base64 (RFC 2045): 표준 Base64와 동일한 문자를 사용하지만, 76자마다 줄바꿈(CRLF)을 삽입합니다. 이메일 메시지에서 사용되며, 오래된 메일 서버와의 호환성을 보장합니다.

실전 활용 예시

  • CSS에 이미지 임베딩: background-image: url('data:image/png;base64,iVBOR...') — 작은 아이콘이나 로고에 적합하며, HTTP 요청을 줄여 성능을 개선합니다.
  • JSON에 바이너리 데이터 저장: {"image": "iVBORw0KGgo..."} — REST API 응답에 이미지나 파일 데이터를 포함할 때 사용합니다.
  • HTTP Basic Auth 헤더: Authorization: Basic dXNlcjpwYXNz — username:password를 Base64로 인코딩하여 API 인증에 사용합니다.
  • JWT 토큰 디버깅: eyJhbGciOiJIUzI1NiJ9를 디코딩하면 {"alg":"HS256"} — 토큰 페이로드를 확인할 때 유용합니다.
  • 이메일 첨부파일 처리: MIME Content-Transfer-Encoding: base64 — 모든 이메일 첨부파일이 이 방식으로 인코딩됩니다.

크기 증가 참고사항

Base64 인코딩은 원본 데이터 대비 약 33% 크기가 증가합니다. 3바이트의 입력이 4바이트의 출력이 되기 때문입니다 (4/3 ≈ 1.33). MIME Base64는 줄바꿈 문자가 추가되어 약 36-37% 증가합니다.

대용량 파일(수 MB 이상)에 Base64를 적용하면 메모리와 대역폭 낭비가 심해지므로, 가능하면 멀티파트 업로드나 바이너리 전송을 사용하는 것이 좋습니다. 소규모 데이터(아이콘, 설정값, 인증 토큰 등)에 Base64를 사용하는 것이 적합합니다.

보안 주의사항

Base64는 인코딩이지 암호화가 아닙니다. Base64로 인코딩된 데이터는 누구나 즉시 디코딩할 수 있습니다.
  • 비밀번호, API 키, 개인정보 등 민감한 데이터를 Base64만으로 보호하지 마세요.
  • HTTP Basic Auth는 반드시 HTTPS와 함께 사용하세요. Base64 인코딩된 자격증명은 네트워크에서 쉽게 가로챌 수 있습니다.
  • JWT 토큰의 페이로드는 Base64URL로 인코딩되어 있어 누구나 읽을 수 있습니다. 민감한 정보는 페이로드에 포함하지 마세요.
  • 보안이 필요한 경우 AES-256, RSA, bcrypt 등 적절한 암호화/해싱 알고리즘을 사용하세요.

관련 도구

URL 인코딩/디코딩

URL 인코딩/디코딩은 URL 특수문자를 퍼센트 인코딩(%XX)으로 변환하거나 디코딩하는 도구입니다. Base64로 인코딩된 문자열을 URL에 포함할 때는 URL 인코딩도 함께 필요할 수 있습니다.

  • URL 쿼리 파라미터에 Base64 문자열을 안전하게 포함
  • encodeURIComponent와 encodeURI 모드 선택 지원
  • 국제화 URL(한글, 일본어 등) 인코딩 처리

해시 생성기

Base64가 인코딩이라면, 해시는 단방향 변환입니다. 데이터 무결성 검증이나 비밀번호 저장에는 Base64 대신 SHA-256, MD5 등의 해시 함수를 사용하세요.

  • SHA-256, MD5 등 다양한 해시 알고리즘 지원
  • 파일 무결성 검증 및 체크섬 생성
  • Base64와 달리 역변환이 불가능한 단방향 함수

자주 묻는 질문

Base64는 바이너리 데이터를 64개의 ASCII 문자(A-Z, a-z, 0-9, +, /)를 사용하여 텍스트로 변환하는 인코딩 방식입니다. 이메일, URL, JSON 등 텍스트만 허용하는 환경에서 바이너리 데이터를 안전하게 전달할 수 있습니다.
아닙니다. Base64는 암호화가 아니라 인코딩입니다. 누구나 쉽게 디코딩할 수 있으므로 비밀번호, 개인정보 등 민감한 데이터 보호 목적으로는 절대 사용하지 마세요. 보안이 필요하면 AES, RSA 등 적절한 암호화 알고리즘을 사용해야 합니다.
네, 이 도구는 UTF-8을 완벽하게 지원하므로 한글, 일본어, 이모지 등 모든 유니코드 문자를 인코딩/디코딩할 수 있습니다. 한글은 UTF-8에서 한 글자당 3바이트를 차지하므로, Base64 인코딩 후 4개의 Base64 문자로 변환됩니다.
Base64 인코딩은 원본 데이터 대비 약 33% 크기가 증가합니다. 3바이트(24비트)의 입력이 4개의 Base64 문자(각 6비트)로 변환되기 때문입니다. 예를 들어 1MB 파일은 약 1.33MB의 Base64 문자열이 됩니다.
표준 Base64는 +와 / 문자를 사용하지만, Base64URL은 URL에서 안전하게 사용할 수 있도록 이를 -와 _로 대체합니다. 또한 패딩 문자(=)를 생략하는 경우가 많습니다. JWT 토큰, URL 쿼리 파라미터 등에서 Base64URL이 사용됩니다.