본문 바로가기
입력한 내용은 서버로 보내지 않습니다. 브라우저 안에서만 처리하고, 어디에도 저장하지 않습니다.

Base64 인코더·디코더

글을 Base64로 바꾸거나 Base64를 원래 글로 되돌립니다. 한글·이모지는 UTF-8 기준으로 정확하게 변환하고, 파일을 Base64나 data URI로 만들 수도 있습니다. 입력한 글과 파일은 서버로 전송되지 않고 브라우저 안에서만 처리합니다.

글을 입력하면 변환 결과가 바로 표시됩니다.

디코딩한 내용이 글(UTF-8)이 아니라 파일 데이터입니다. 추정 형식:

      
    

파일 → Base64 · data URI

Base64 → 파일

Base64란?

Base64는 아무 데이터(글·이미지·파일)를 영문 대소문자·숫자·+·/ 64개 글자만으로 바꾸는 표기법입니다(RFC 4648). 3바이트를 4글자로 바꾸므로 크기가 약 4/3배(33%) 커지고, 길이를 4의 배수로 맞추려고 끝에 =를 붙입니다. 암호화가 아니라서 누구나 되돌릴 수 있습니다. 비밀번호를 숨기는 용도로 쓰면 안 됩니다.

이메일 첨부(MIME), HTTP Basic 인증 헤더, JWT 토큰, HTML·CSS에 이미지를 바로 넣는 data URI, JSON 안에 파일을 담을 때 주로 씁니다. JWT 본문을 디코딩했다면 JSON 포맷터로 보기 좋게 정리할 수 있습니다.

한글이 깨지는 이유와 UTF-8

Base64는 글자가 아니라 바이트를 바꿉니다. 그래서 같은 "안녕"도 어떤 문자 인코딩으로 바이트를 만들었는지에 따라 결과가 다릅니다.

글인코딩Base64
안녕UTF-8 (이 도구, 웹 표준)7JWI64WV
안녕EUC-KR (오래된 한국 시스템)vsiz5w==
AUTF-8·EUC-KR 같음QQ==

자바스크립트의 btoa("안녕")은 오류가 나고, 일부 사이트는 글자를 1바이트로 잘라 엉뚱한 결과를 냅니다. 이 도구는 항상 UTF-8로 바꾸므로 서버·앱·다른 언어(Python base64.b64encode(s.encode()) 등)와 결과가 같습니다. 디코딩 결과가 UTF-8 글이 아니면 깨진 글 대신 파일로 내려받을 수 있게 알려 줍니다.

URL-safe Base64와 줄바꿈

자주 묻는 질문

입력한 글이나 파일이 서버로 전송되나요?

아니요. 인코딩·디코딩과 파일 변환은 모두 브라우저 안에서 이뤄지고 서버로 전송하거나 저장하지 않습니다. 인증 헤더나 토큰처럼 민감한 값도 안심하고 넣을 수 있습니다.

Base64 → 파일에서 형식은 어떻게 정하나요?

data URI라면 앞에 적힌 형식(예: image/png)을 쓰고, 아니면 파일 머리 바이트(PNG·JPEG·GIF·WebP·PDF·ZIP 등의 서명)로 추정해 확장자를 붙입니다. 알 수 없으면 .bin으로 저장합니다.

"Base64에 쓸 수 없는 문자" 오류가 나요.

따옴표·쉼표 같은 글자가 섞였거나, Basic ·Bearer 같은 앞말이 붙어 있는 경우입니다. 오류에 표시된 위치의 글자를 지우고 다시 변환하세요. 끝이 잘린 Base64는 길이 오류가 납니다.

출처