한국어

Base64 인코딩 디코딩 변환기

한글·이모지까지 정확하게 변환하는 Base64 인코더·디코더

브라우저에서 처리 · 서버로 전송되지 않음

결과

Base64란?

Base64는 바이트 데이터를 영문 대소문자, 숫자, +, / 64개 문자로 표현하는 인코딩 방식입니다. 이메일 첨부파일, 데이터 URL, JWT 토큰처럼 텍스트만 다룰 수 있는 곳에 바이너리를 실어 보낼 때 씁니다. 3바이트를 4글자로 바꾸기 때문에 결과는 원본보다 약 33% 길어집니다.

암호화가 아니라는 점은 꼭 기억해 두세요. Base64는 누구나 같은 규칙으로 되돌릴 수 있는 표기 방식일 뿐이라서, 비밀번호나 개인정보를 Base64로 바꿔 두어도 보호되지 않습니다. API 키를 설정 파일에 Base64로 적는 경우가 많은데, 이것도 숨기는 효과는 없고 특수문자를 안전하게 옮기기 위한 것입니다.

사용법

  1. 위쪽 모드에서 인코딩 또는 디코딩을 고릅니다.
  2. 입력 칸에 텍스트나 Base64 문자열을 붙여 넣으면 결과가 바로 나옵니다. 결과 칸 위에 원문 바이트 수와 Base64 글자 수가 함께 표시됩니다.
  3. 필요하면 URL-safe 옵션을 켜고, 복사 버튼으로 결과를 가져갑니다.
  4. 결과를 다시 반대로 바꿔 보고 싶다면 결과를 입력으로를 누르세요. 모드가 바뀌면서 결과가 입력 칸으로 옮겨집니다.

변환 기준

  • 텍스트는 UTF-8 바이트로 바꾼 뒤 인코딩합니다. 한글 한 글자는 3바이트, 이모지는 보통 4바이트입니다. 그래서 “한글” 두 글자는 6바이트이고 Base64로는 8글자가 됩니다.
  • 디코딩할 때 공백·줄바꿈은 무시하고, 빠진 = 패딩은 자동으로 채웁니다. 76자마다 줄을 나눈 메일 원문도 그대로 붙여 넣을 수 있습니다.
  • URL-safe 형식(-, _)과 일반 형식(+, /)은 디코딩할 때 모두 받아들입니다.
  • data:text/plain;base64,처럼 data URL 머리말이 붙어 있으면 떼고 디코딩합니다.
  • 디코딩 결과가 올바른 UTF-8이 아니면(이미지 같은 바이너리, EUC-KR 한글 등) 깨진 글자를 보여 주는 대신 오류로 알려 드립니다.

예시

입력 Base64
a YQ==
안녕하세요 7JWI64WV7ZWY7IS47JqU
中文 5Lit5paH
👍 8J+RjQ==

끝의 =는 마지막 묶음이 3바이트를 채우지 못했다는 표시입니다. 1바이트가 남으면 ==, 2바이트가 남으면 = 하나가 붙고, 딱 맞으면 붙지 않습니다.

자주 쓰는 곳

  • JWT 토큰: 점으로 나뉜 앞의 두 부분은 URL-safe Base64로 적힌 JSON입니다. 내용을 보려면 JWT 디코더가 더 편합니다.
  • 메일 원문: Content-Transfer-Encoding: base64로 표시된 본문을 붙여 넣으면 원래 글을 읽을 수 있습니다. 제목의 =?UTF-8?B?…?= 부분도 가운데 값만 떼어 넣으면 됩니다.
  • 쿠버네티스 Secret: data 항목의 값은 Base64입니다. 디코딩해서 값을 확인할 수 있지만, 화면 공유 중에는 주의하세요.

자주 묻는 질문

한글을 Base64로 바꾸면 왜 다른 사이트와 결과가 다를 수 있나요?

문자를 바이트로 바꾸는 방식(문자 인코딩)이 다르면 결과도 달라집니다. 이 도구는 웹 표준인 UTF-8을 사용합니다. 예를 들어 "안녕하세요"는 7JWI64WV7ZWY7IS47JqU가 됩니다. 오래된 프로그램이 EUC-KR(CP949)로 바꾼 값은 같은 글자라도 Base64가 다릅니다.

URL-safe Base64는 무엇인가요?

일반 Base64의 +와 /를 -와 _로 바꾸고 끝의 = 패딩을 뺀 형식입니다. URL 경로나 JWT 토큰에 그대로 넣을 수 있습니다. 디코딩할 때는 두 형식을 따로 고를 필요 없이 자동으로 받아들입니다.

입력한 내용이 서버에 저장되나요?

아니요. 변환은 모두 브라우저 안에서 이루어지고 입력값은 어디에도 전송되지 않습니다.

디코딩했더니 "텍스트로 해석할 수 없는 데이터"라고 나와요.

원본이 이미지·PDF 같은 바이너리이거나, UTF-8이 아닌 EUC-KR로 저장된 글자일 때 이렇게 나옵니다. 이미지라면 이미지 → Base64 도구에서 data URL로 확인하고, 옛 메일·DB의 한글이라면 문자 인코딩 변환기(EUC-KR)를 함께 써 보세요.

data:image/png;base64, 로 시작하는 값도 넣을 수 있나요?

네. 디코딩 모드에서는 앞의 data:…;base64, 머리말을 자동으로 떼고 뒤의 Base64만 풉니다. 다만 그 안이 이미지라면 텍스트가 아니어서 위의 바이너리 안내가 나옵니다.

필요한 도구가 있나요?