Base64 인코딩 디코딩 변환기
한글·이모지까지 정확하게 변환하는 Base64 인코더·디코더
브라우저에서 처리 · 서버로 전송되지 않음
Base64란?
Base64는 바이트 데이터를 영문 대소문자, 숫자, +, / 64개 문자로 표현하는 인코딩 방식입니다. 이메일 첨부파일, 데이터 URL, JWT 토큰처럼 텍스트만 다룰 수 있는 곳에 바이너리를 실어 보낼 때 씁니다. 3바이트를 4글자로 바꾸기 때문에 결과는 원본보다 약 33% 길어집니다.
암호화가 아니라는 점은 꼭 기억해 두세요. Base64는 누구나 같은 규칙으로 되돌릴 수 있는 표기 방식일 뿐이라서, 비밀번호나 개인정보를 Base64로 바꿔 두어도 보호되지 않습니다. API 키를 설정 파일에 Base64로 적는 경우가 많은데, 이것도 숨기는 효과는 없고 특수문자를 안전하게 옮기기 위한 것입니다.
사용법
- 위쪽 모드에서 인코딩 또는 디코딩을 고릅니다.
- 입력 칸에 텍스트나 Base64 문자열을 붙여 넣으면 결과가 바로 나옵니다. 결과 칸 위에 원문 바이트 수와 Base64 글자 수가 함께 표시됩니다.
- 필요하면 URL-safe 옵션을 켜고, 복사 버튼으로 결과를 가져갑니다.
- 결과를 다시 반대로 바꿔 보고 싶다면 결과를 입력으로를 누르세요. 모드가 바뀌면서 결과가 입력 칸으로 옮겨집니다.
변환 기준
- 텍스트는 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만 풉니다. 다만 그 안이 이미지라면 텍스트가 아니어서 위의 바이너리 안내가 나옵니다.