GroundHaus

Base64 인코더 / 디코더

텍스트를 Base64로 인코딩하거나 디코딩합니다.

Base64
결과가 여기 표시됩니다.

사용법 · 예제 · 제한 사항

이게 뭔가요?

Base64는 이진 데이터나 텍스트를 알파벳 대소문자·숫자·+·/ 64개 문자로만 표현하는 인코딩입니다. 이 도구는 텍스트 → Base64, Base64 → 텍스트, 그리고 파일 → Base64(data URI) 세 가지를 합니다. 텍스트는 UTF-8 바이트로 바꾼 뒤 인코딩하므로 한글도 정확히 오갑니다. 결과는 원본보다 약 33% 길어지며, 바이트 3개가 문자 4개로 바뀌고 남는 자리는 =로 채웁니다.

인코딩 예제

인코딩 탭, 텍스트 소스를 선택하고 왼쪽에 입력하면 오른쪽에 바로 나옵니다.

입력 출력 비고
Hello, World! SGVsbG8sIFdvcmxkIQ== 13바이트 → 20자, 패딩 2개
Hello SGVsbG8= 5바이트 → 8자, 패딩 1개
안녕하세요 7JWI64WV7ZWY7IS47JqU UTF-8 15바이트 → 20자, 패딩 없음
Aladdin:open sesame QWxhZGRpbjpvcGVuIHNlc2FtZQ== HTTP Basic 인증 헤더 값 (RFC 7617 예시)
{"alg":"HS256","typ":"JWT"} eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 JWT 헤더 조각

출력 길이는 4 × ceil(바이트 수 ÷ 3)입니다. 한글은 글자당 3바이트이므로 글자 수의 4배 길이가 됩니다. 긴 결과도 줄바꿈 없이 한 줄로 나옵니다(이메일 MIME처럼 76자마다 줄을 바꾸는 형식은 아닙니다).

디코딩 예제

디코딩 탭에서 Base64를 붙여넣으면 평문이 나옵니다.

입력 출력 비고
dXNlcjpwYXNz user:pass Basic 인증에서 아이디·비밀번호가 그대로 드러남
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 {"alg":"HS256","typ":"JWT"} JWT 첫 조각
SGVs + 줄바꿈 + bG8= Hello 줄바꿈·공백은 전부 제거하고 디코딩
SGVsbG8 Hello 패딩 =이 빠져도 디코딩됨

복사 과정에서 끼어든 개행이나 공백은 도구가 알아서 지우므로, 로그에서 여러 줄로 잘린 Base64도 그대로 붙여넣으면 됩니다.

디코딩이 실패하는 경우

입력 결과 해결
eyJ… 안에 - 또는 _가 있음 올바른 Base64 문자열이 아니에요 base64url입니다. -→+, _→/로 바꾼 뒤 넣으세요
data:image/png;base64,iVBOR… 오류 : ; ,는 Base64 문자가 아닙니다. 쉼표 뒤부터만 붙여넣으세요
aaa.bbb.ccc (JWT 전체) 오류 점으로 나눠 조각마다 따로 디코딩
길이를 4로 나눈 나머지가 1 오류 끝이 잘려 나간 문자열. 원본을 다시 복사
이미지·PDF 등 이진 파일의 Base64 오류 없음, �PNG… 같은 깨진 글자 이 도구는 결과를 UTF-8 텍스트로만 해석합니다. 파일로 되돌리는 기능은 없습니다

마지막 줄이 중요합니다. 디코딩한 바이트가 올바른 UTF-8이 아니어도 오류를 내지 않고 깨진 문자(�)로 바꿔 보여 줍니다. 결과에 �가 섞여 있으면 “텍스트가 아닌 데이터였거나 다른 인코딩(EUC-KR 등)의 텍스트”라는 신호입니다.

파일을 data URI로

인코딩 → 파일 탭에서 파일을 고르면 전체 내용이 Base64로 바뀝니다. data URI로 옵션(기본 켜짐)을 두면 data:image/png;base64,iVBOR… 형태로 나와 HTML <img src>나 CSS url()에 바로 넣을 수 있습니다. 옵션을 끄면 순수 Base64만 나옵니다.

언제 쓰나요?

한계

제작·관리 GroundHaus · 오류 제보 · 데이터 처리 안내

자주 묻는 질문

Base64는 암호화인가요?

아니요. Base64는 누구나 즉시 되돌릴 수 있는 인코딩일 뿐 암호화가 아닙니다. 비밀번호나 토큰을 숨기는 용도로 쓰면 안 됩니다. 이 페이지의 디코딩 탭에 붙여넣으면 바로 원문이 보입니다.

한글도 깨지지 않고 처리되나요?

네. 입력을 UTF-8 바이트로 바꾼 뒤 인코딩하므로 한글·이모지도 정확히 오갑니다. 예를 들어 "안녕하세요"는 7JWI64WV7ZWY7IS47JqU가 됩니다. 처리는 브라우저 안에서 이뤄지며 입력을 서버로 보내는 코드는 없습니다. 다만 브라우저 확장이나 공용 PC의 클립보드처럼 도구 밖 요인까지 보장하지는 못합니다.

JWT를 디코딩했더니 오류가 납니다.

JWT는 URL-safe 변형(base64url)을 써서 +·/ 대신 -·_ 를 사용합니다. 이 도구는 표준 Base64만 받으므로 -가 +로, _가 /로 바뀌어야 디코딩됩니다. 패딩(=)이 빠진 것은 문제가 되지 않습니다. 또 JWT는 점(.)으로 이어진 세 조각이므로 한 조각씩 넣어야 합니다.