Nouplo

Base64 인코딩 / 디코딩

텍스트를 Base64로, Base64를 텍스트로. UTF-8을 정확히 처리하고 URL 안전 문자표도 고를 수 있습니다.

출력
위에 붙여넣거나 입력하면 여기에 결과가 표시됩니다.

파일은 내 기기 밖으로 나가지 않습니다

이 도구는 브라우저 안에서만 작동합니다. 붙여넣은 내용은 기기에서 처리되고 서버로 전송되지 않으므로 토큰, 키, 공개 전 문서도 안심하고 사용할 수 있습니다.

사용 예시

‘안녕하세요’가 7JWI64WV7ZWY7IS47JqU가 되는 과정: 한글 Base64 인코딩

API 요청이나 설정 파일에 한글을 넣을 때 Base64로 바꿔 달라는 경우가 많습니다. 모드를 「Base64로 인코딩」에 두고 ‘안녕하세요’를 붙여 넣은 뒤 변환하기를 누릅니다.

  1. 한글 한 글자는 UTF-8로 3바이트라 다섯 글자는 15바이트가 됩니다.
  2. Base64는 3바이트를 4글자로 바꾸므로 15바이트는 정확히 20글자, 7JWI64WV7ZWY7IS47JqU이고 끝에 =가 붙지 않습니다.
  3. 바이트 수가 3의 배수가 아니면 =로 채웁니다. ‘서울시 강남구’는 공백까지 19바이트라 28글자 중 마지막 두 글자가 ==입니다.
  4. URL 안전을 켜면 +와 /가 -와 _로 바뀌고 끝의 =가 빠집니다. ‘김민수’의 6rmA66+87IiY는 6rmA66-87IiY가 됩니다.
원문 UTF-8 바이트 Base64 URL 안전
Hello 5SGVsbG8=SGVsbG8
안녕하세요 157JWI64WV7ZWY7IS47JqU7JWI64WV7ZWY7IS47JqU
김민수 96rmA66+87IiY6rmA66-87IiY
서울시 강남구 197ISc7Jq47IucIOqwleuCqOq1rA==7ISc7Jq47IucIOqwleuCqOq1rA
주문번호 2026-0315 227KO866y467KI7Zi4IDIwMjYtMDMxNQ==7KO866y467KI7Zi4IDIwMjYtMDMxNQ

모드를 「Base64에서 디코딩」으로 바꿔 7JWI64WV7ZWY7IS47JqU를 넣으면 다시 ‘안녕하세요’가 나옵니다. 디코더는 URL 안전 문자표와 = 없는 문자열도 받으므로 6rmA66-87IiY도 ‘김민수’로 돌아옵니다.

사용 방법

  1. 일반 텍스트를 Base64로 바꾸려면 인코딩을, Base64를 텍스트로 되돌리려면 디코딩을 고르세요.
  2. 입력을 붙여 넣으세요. 디코딩할 때는 +와 /를 쓰는 표준 문자표와 -와 _를 쓰는 URL 안전 문자표를 모두 받으며, 패딩이 빠져 있어도 처리합니다.
  3. 결과를 URL이나 JWT, 파일 이름에 넣을 예정이면 URL 안전을 켜세요. 퍼센트 인코딩이 필요 없어집니다.
  4. 입력하는 대로 결과가 나옵니다. 결과를 복사하세요. 한글과 이모지, 악센트 문자는 UTF-8 바이트로 인코딩되며, btoa 기반 도구가 흔히 틀리는 부분입니다.

자주 묻는 질문

Base64가 암호화인가요?
아니요. Base64는 바이트를 64개의 인쇄 가능한 문자로 표현하는 되돌릴 수 있는 인코딩입니다. 누구나 즉시 디코딩할 수 있습니다. 전송이나 삽입 용도로만 쓰고 비밀을 감추는 데는 절대 쓰지 마세요.
한글이나 이모지 같은 비 ASCII 문자는 어떻게 처리하나요?
인코딩하기 전에 텍스트를 UTF-8 바이트로 바꾸고, 디코딩한 결과도 UTF-8로 해석합니다. 대부분의 언어와 HTTP 라이브러리가 하는 방식과 같습니다. 자바스크립트의 btoa()는 Latin-1만 받기 때문에 순진하게 만든 도구는 이런 문자에서 오류가 납니다.
표준 Base64와 URL 안전 Base64는 무엇이 다른가요?
표준 Base64(RFC 4648 4절)는 +와 /를 쓰고 =로 패딩합니다. URL 안전 Base64(5절)는 이를 -와 _로 바꾸고 보통 패딩을 뺍니다. 그래서 URL, 쿠키, JWT에서 이스케이프 없이 쓸 수 있습니다. 이 도구의 디코더는 둘 다 받습니다.
인코딩 결과가 원문보다 3분의 1쯤 긴 이유는 무엇인가요?
Base64는 3바이트를 4글자로 담기 때문에 결과 크기가 입력의 약 4/3에 패딩 문자 최대 2개를 더한 정도가 됩니다. 인쇄 가능한 문자만 쓰기 위해 치르는 비용입니다.
디코딩했더니 읽을 수 있는 텍스트가 아니라고 나옵니다.
원래 바이트가 UTF-8이 아닐 가능성이 큽니다. 오래된 메일이나 시스템은 한글을 EUC-KR(CP949)로 저장했는데, 이 도구는 디코딩한 바이트를 UTF-8로 읽기 때문에 EUC-KR 한글은 깨진 글자로 보여 주지 않고 UTF-8 텍스트가 아니라고 알려 줍니다. EUC-KR로 저장된 ‘안녕하세요’의 Base64인 vsiz58fPvLy/5A==가 그런 예입니다.
메일 원문의 =?UTF-8?B?...?= 부분도 풀 수 있나요?
네. B?와 ?= 사이의 문자열만 붙여 넣고 디코딩하세요. =?UTF-8?B?7JWI64WV?=라면 7JWI64WV를 넣어 ‘안녕’을 얻습니다. 앞부분에 UTF-8 대신 EUC-KR이라고 적혀 있으면 위의 이유로 풀리지 않고 UTF-8 텍스트가 아니라는 안내가 나옵니다.
데이터가 서버로 전송되나요?
아니요. 인코딩과 디코딩 모두 브라우저 안에서 실행됩니다. API 키나 접속 문자열, 개인적인 글을 변환해도 기기 밖으로 나가지 않습니다.

관련 도구