Base64 인코더·디코더
글을 Base64로 바꾸거나 Base64를 원래 글로 되돌립니다. 한글·이모지는 UTF-8 기준으로 정확하게 변환하고, 파일을 Base64나 data URI로 만들 수도 있습니다. 입력한 글과 파일은 서버로 전송되지 않고 브라우저 안에서만 처리합니다.
글을 입력하면 변환 결과가 바로 표시됩니다.
파일 → 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== |
| A | UTF-8·EUC-KR 같음 | QQ== |
자바스크립트의 btoa("안녕")은 오류가 나고, 일부 사이트는 글자를 1바이트로 잘라 엉뚱한 결과를 냅니다. 이 도구는 항상 UTF-8로 바꾸므로 서버·앱·다른 언어(Python base64.b64encode(s.encode()) 등)와 결과가 같습니다.
디코딩 결과가 UTF-8 글이 아니면 깨진 글 대신 파일로 내려받을 수 있게 알려 줍니다.
URL-safe Base64와 줄바꿈
- URL-safe(RFC 4648 §5): 주소에서 특별한 뜻이 있는
+·/를-·_로 바꾸고 끝의=를 뺍니다. JWT, 주소 매개변수, 파일 이름에 씁니다. 디코딩할 때는 표준·URL-safe·패딩 생략을 자동으로 모두 받습니다. - 64자 줄바꿈: PEM 인증서·키(
-----BEGIN CERTIFICATE-----) 형식. 76자: MIME 이메일 본문 형식. 디코딩할 때 공백·줄바꿈은 무시합니다. - data URI:
data:image/png;base64,…처럼 형식을 앞에 붙인 형태로,<img src>나 CSSurl()에 바로 넣을 수 있습니다. 작은 아이콘에만 쓰세요. 큰 이미지는 33% 커져서 오히려 느려집니다. 사진 용량을 먼저 줄이려면 사진 용량 줄이기를 쓰세요.
자주 묻는 질문
입력한 글이나 파일이 서버로 전송되나요?
아니요. 인코딩·디코딩과 파일 변환은 모두 브라우저 안에서 이뤄지고 서버로 전송하거나 저장하지 않습니다. 인증 헤더나 토큰처럼 민감한 값도 안심하고 넣을 수 있습니다.
Base64 → 파일에서 형식은 어떻게 정하나요?
data URI라면 앞에 적힌 형식(예: image/png)을 쓰고, 아니면 파일 머리 바이트(PNG·JPEG·GIF·WebP·PDF·ZIP 등의 서명)로 추정해 확장자를 붙입니다. 알 수 없으면 .bin으로 저장합니다.
"Base64에 쓸 수 없는 문자" 오류가 나요.
따옴표·쉼표 같은 글자가 섞였거나, Basic ·Bearer 같은 앞말이 붙어 있는 경우입니다. 오류에 표시된 위치의 글자를 지우고 다시 변환하세요. 끝이 잘린 Base64는 길이 오류가 납니다.
출처
이 도구가 도움이 됐다면 알려 주세요
페이지 링크만 보냅니다. 입력한 값이나 파일은 담기지 않습니다.