홈 / 텍스트 / Base64 인코딩·디코딩

Base64 인코딩·디코딩

Base64 인코딩과 디코딩을 무료로 변환하세요. 텍스트 변환, 이미지→Base64(Data URI), URL-safe 모드까지 브라우저에서 바로 처리됩니다. 회원가입 없이, 서버 전송 없이 안전하게.

텍스트·파일 변환URL-safe 지원이미지 미리보기서버 전송 없음

다음 계산

이어서 많이 찾는 계산

이용 방법

탭을 선택하세요

텍스트 인코딩, base64 디코딩, 파일→Base64, Base64→이미지 중 원하는 탭을 고르세요.

텍스트·파일 입력하세요

텍스트를 입력하거나 10MB 이하 파일을 끌어다 놓으세요. 한글은 UTF-8로 안전하게 변환됩니다.

결과를 복사하세요

자동 생성된 결과를 확인하고 '복사하기'를 누르세요. 디코딩 탭에서는 먼저 '디코딩하기'를 누르세요.

핵심 답변

Base64(베이스64)는 이진 데이터를 64개 ASCII 문자로 바꾸는 인코딩 방식입니다. 3바이트를 4문자로 변환하며 용량은 약 33% 늘어납니다.

마지막 업데이트: 2026년 9월 17일
Base64 색인표 요약
문자인덱스비고
A–Z0–25대문자 26자
a–z26–51소문자 26자
0–952–61숫자 10자
+62URL-safe에서는 -
/63URL-safe에서는 _
=패딩출력 길이를 4의 배수로 맞춤
"Man" → "TWFu" 변환 예시 (24비트를 6비트씩 나눔)
문자ASCII이진(8비트)6비트 그룹인덱스Base64
M770100110101001119T
a970110000101011022W
n110011011100001015F
———11011054u
표준 Base64 vs Base64URL(URL-safe) 비교
구분표준 Base64Base64URL
문자 ++-
문자 //_
패딩 =유지생략 (정상)
주로 쓰는 곳이메일(MIME)·데이터 저장URL·JWT 토큰·파일명

심화 가이드

한글이 깨진다면: 원인 → 해결

원인은 대부분 문자셋입니다. Base64는 바이트 단위로 동작하므로, 한글을 변환할 때는 먼저 UTF-8 바이트로 바꾸는 과정이 필요합니다. 브라우저의 btoa()/atob() 함수는 ASCII 문자만 처리해서 한글을 직접 넣으면 깨지거나 오류가 납니다. 이 도구는 TextEncoder/TextDecoder로 UTF-8 변환을 자동으로 처리하므로 한글이 안전합니다. 구형 시스템에서 받은 데이터가 깨진다면 EUC-KR 등 원래 문자셋을 확인해 보세요. 인코딩 전 바이트 수를 미리 확인하고 싶다면 글자수 세기 도구를 이용해 보세요.

패딩(=) 규칙 한눈에 보기

Base64 출력 길이는 항상 4의 배수여야 합니다. 원본 데이터 길이를 3으로 나눈 나머지가 1이면 ==, 2이면 =이 붙고, 나머지가 0이면 패딩이 없습니다. 예를 들어 M은 TQ==, Ma는 TWE=, Man은 TWFu가 됩니다. 디코딩할 때 길이가 4의 배수가 아니거나 패딩이 빠지면 오류가 나니, 입력 문자열의 끝을 먼저 확인하세요. URL-safe(Base64URL) 형식에서는 패딩을 생략하는 것이 정상이므로, 패딩이 없어도 당황하지 마세요.

주의: Base64는 암호화가 아닙니다

Base64는 누구나 디코딩할 수 있는 인코딩 방식이라서, 비밀번호나 개인정보를 "보호"하는 용도로 사용하면 안 됩니다. 토큰·API 키를 디버깅할 때는 편리하지만, 민감한 값을 숨기는 효과는 없습니다. 실제로 데이터를 암호화해야 한다면 AES 같은 암호화 방식을 사용하세요.

이미지 Data URI로 활용하기

이미지를 Base64로 바꾸면 data:image/png;base64,... 형태의 Data URI가 됩니다. 이 문자열을 <img> 태그의 src, CSS의 background-image, 마크다운 이미지 문법에 바로 붙여넣어 사용할 수 있습니다. 이 페이지의 "파일 → Base64" 탭에서 Data URI 출력을 선택하고, "Base64 → 이미지" 탭에서 붙여넣기 전에 미리보기로 확인할 수 있습니다. 단, 인코딩하면 용량이 약 33% 늘어나므로 작은 아이콘·로고처럼 자주 쓰는 작은 이미지에 적합합니다.

개발 실무에서 Base64를 쓰는 경우

Base64는 개발 현장에서 생각보다 자주 등장합니다. 첫째, API 통신입니다. 이미지나 파일을 JSON으로 주고받을 때 바이너리를 텍스트로 바꿔 담는 용도로 쓰입니다. JSON은 바이너리를 직접 담을 수 없으므로 이런 변환이 필수적입니다. 둘째, 인증 토큰입니다. JWT의 헤더와 페이로드는 Base64URL로 인코딩되어 있어, 디코딩하면 토큰 내용을 바로 확인할 수 있습니다. 다만 서명 검증 없이는 위변조 여부를 알 수 없으니 주의하세요. 토큰 디버깅할 때 이 도구에 붙여넣으면 페이로드의 사용자 정보나 만료 시각을 바로 읽을 수 있습니다. 셋째, 설정 파일입니다. 인증서나 키 파일을 환경 변수에 넣을 때 줄바꿈 문제를 피하려고 Base64로 감싸는 경우가 많습니다. 도커나 클라우드 배포 환경에서 자주 쓰는 패턴입니다. 넷째, 데이터 URI입니다. 작은 이미지를 HTML이나 CSS에 직접 삽입할 때 사용합니다. HTTP 요청을 줄일 수 있어 아이콘이 많은 페이지에서 유용합니다. 공통 주의사항은 용량입니다. 인코딩하면 원본보다 약 33% 커지므로, 큰 파일에는 부적합합니다. 큰 이미지라면 이미지 용량 줄이기로 먼저 줄인 뒤 인코딩하는 것을 권장합니다.

한글이 포함된 문자열 안전하게 주고받기

한글을 Base64로 주고받을 때 가장 흔한 실수는 인코딩 단계의 불일치입니다. Base64 자체는 바이트를 다루므로, 한글 문자열에서 바이트로 변환하는 과정에서 UTF-8을 썼는지 EUC-KR을 썼는지가 결과를 좌우합니다. 보내는 쪽이 UTF-8로 인코딩했는데 받는 쪽이 EUC-KR로 디코딩하면 글자가 깨집니다. 해결책은 양쪽의 인코딩을 UTF-8로 통일하는 것입니다. 요즘 대부분의 시스템이 UTF-8을 기본으로 쓰므로, 특별한 이유가 없다면 UTF-8을 선택하세요. 레거시 시스템과 연동할 때만 EUC-KR을 고려하면 됩니다. URL에 Base64 문자열을 넣을 때는 한 가지가 더 있습니다. 표준 Base64의 더하기, 슬래시, 등호 문자는 URL에서 특수한 의미를 가지므로, URL 인코딩으로 감싸거나 Base64URL 방식으로 변환해야 합니다. 특히 GET 파라미터로 전달할 때는 이 변환을 빼먹으면 서버에서 값을 다르게 해석합니다. 디버깅할 때는 이 도구로 디코딩한 결과가 예상한 문자열과 일치하는지 먼저 확인하고, 그다음 단계로 넘어가세요. 단계별로 확인하면 문제 지점을 빨리 찾을 수 있습니다. 인코딩 설정은 문서화해 두면 다음에 같은 문제를 겪지 않습니다.

Base64URL과 패딩 처리 실전 정리

URL이나 파일 이름에 Base64를 쓸 때는 Base64URL 변환이 필요합니다. 변환 규칙은 단순합니다. 더하기는 하이픈으로, 슬래시는 언더스코어로 바꾸고, 끝에 붙는 등호 패딩은 제거합니다. 디코딩할 때는 역으로 변환한 뒤, 문자열 길이가 4의 배수가 되도록 등호를 다시 붙이면 됩니다. 많은 JWT 라이브러리가 이 방식을 쓰므로, 토큰을 다룰 일이 있다면 익혀 두는 것이 좋습니다. 패딩에 대해 헷갈리는 경우가 많은데, 패딩은 원본 바이트 길이를 3으로 나눈 나머지를 표시하는 역할입니다. 나머지가 1이면 등호 두 개, 2이면 등호 한 개가 붙고, 나머지가 0이면 패딩이 없습니다. 디코딩할 때 패딩이 없어도 길이를 보고 복원할 수 있어, Base64URL에서는 생략하는 것이 관례입니다. 이 도구에서 인코딩한 뒤 URL에 넣을 일이 생기면 URL 인코딩과 함께 쓰는 것을 기억하세요. 두 도구를 조합하면 API 테스트나 웹훅 디버깅이 한결 수월해집니다. 변환 규칙을 메모장에 정리해 두면 필요할 때 바로 참고할 수 있습니다.

Base64 출력 길이는 원본의 약 4/3배로, 용량이 약 33% 늘어납니다. 모든 변환은 브라우저 안에서 처리되며, 입력한 텍스트·파일이 서버로 전송되거나 저장되지 않습니다. 이 도구는 UTF-8 기준으로 동작합니다.

자주 묻는 질문

Base64 인코딩이란 무엇인가요?
이진 데이터를 A–Z, a–z, 0–9, +, / 64개 ASCII 문자로 바꾸는 인코딩 방식입니다. 이메일(MIME), JSON, HTML 등 텍스트만 다룰 수 있는 곳에 이미지·파일을 실어 보낼 때 사용합니다. 3바이트를 4문자로 바꾸며, 용량은 약 33% 늘어납니다. 디코딩한 JSON 데이터를 읽기 좋게 다듬으려면 JSON 포맷터·정리 도구를 이용해 보세요.
디코딩했는데 한글이 깨져서 나옵니다. 왜 그런가요?
대부분 문자셋 문제입니다. 한글은 UTF-8로 인코딩된 경우가 대부분이므로, 디코딩 시 문자셋을 UTF-8로 지정해 주세요. 구형 시스템에서 받은 데이터라면 EUC-KR 등 원래 문자셋을 확인해야 합니다. 개발자 참고: 브라우저의 atob()은 ASCII만 처리하므로 한글은 TextDecoder와 함께 사용해야 합니다. 이 도구는 UTF-8 변환을 자동으로 처리합니다.
끝에 붙는 =(패딩)은 무엇인가요? 꼭 필요한가요?
Base64 출력 길이를 4의 배수로 맞추기 위한 채움 문자입니다. 원본 길이를 3으로 나눈 나머지가 1이면 ==, 2이면 =이 붙습니다(예: M→TQ==, Ma→TWE=). 디코딩할 때는 필요하지만, URL-safe(Base64URL) 형식에서는 생략하는 것이 정상입니다.
Base64와 Base64URL(URL-safe)은 무엇이 다른가요?
+를 -로, /를 _로 바꾸고 = 패딩을 생략한 변형입니다(RFC 4648). URL·파일명·JWT 토큰처럼 +, /, =가 문제를 일으키는 곳에서 사용합니다. 두 형식은 서로 변환할 수 있으며, 이 도구의 URL-safe 토글을 켜면 자동으로 변환됩니다. 일반 텍스트의 퍼센트 인코딩(%20 등)이 필요하면 URL 인코딩·디코딩 도구를 이용해 보세요.
Base64로 인코딩하면 용량이 얼마나 늘어나나요?
약 33% 늘어납니다. 3바이트를 4문자로 표현하기 때문입니다. 작은 이미지·아이콘을 HTML에 직접 넣을 때는 편리하지만, 큰 파일은 별도 파일로 두는 것이 좋습니다.
이미지를 Base64로 바꾸면 미리보기로 확인할 수 있나요?
네. 변환된 문자열을 Data URI(data:image/png;base64,...) 형태로 만들면 브라우저에서 바로 미리보기할 수 있고, <img> 태그·CSS·마크다운용 코드를 복사해 바로 사용할 수 있습니다. 이 페이지의 "Base64 → 이미지" 탭에서 문자열을 붙여넣으면 미리보기와 다운로드를 바로 확인할 수 있습니다.
Base64 디코딩은 복호화인가요? 안전한가요?
아닙니다. Base64는 암호화가 아니라 인코딩이라서 누구나 디코딩할 수 있습니다. 디코딩은 복호화가 아니며, 비밀번호나 개인정보를 "보호"하는 용도로 사용하면 안 됩니다. 실제 암호문(AES 등)을 해독하는 것과는 다릅니다.
URL에 Base64를 그대로 넣어도 되나요?
권장하지 않습니다. 표준 Base64의 더하기, 슬래시, 등호 문자는 URL에서 예약된 의미를 가져 서버가 다르게 해석할 수 있습니다. 예를 들어 더하기 기호는 공백으로 해석되는 경우가 있어 데이터가 손상됩니다. URL 인코딩으로 감싸거나, 문자를 치환하고 패딩을 제거하는 Base64URL 방식을 사용하세요. API 명세에 Base64URL을 쓰라고 되어 있다면 반드시 변환 방식을 확인하세요.
큰 파일을 인코딩하면 어떻게 되나요?
브라우저 메모리에 부담을 주어 멈추거나 느려질 수 있습니다. Base64는 원본보다 약 33% 커지므로 수 MB 이상의 파일은 서버 방식이나 전용 프로그램을 권장합니다. 특히 모바일 브라우저는 메모리 제한이 엄격해 큰 파일 처리에 취약합니다. 이미지는 이미지 용량 줄이기로 먼저 줄인 뒤 인코딩하세요. 텍스트 위주의 설정 파일이나 인증서처럼 크기가 작은 데이터에는 이 도구가 가장 간편합니다.
디코딩이 실패하는 흔한 원인은?
세 가지가 흔합니다. 첫째, 문자열 중간에 들어간 줄바꿈이나 공백입니다. 이메일이나 메신저로 전달되는 과정에서 자동으로 줄바꿈이 들어가는 경우가 많습니다. 둘째, URL용으로 변환된 Base64URL을 표준 디코더에 넣은 경우입니다. 셋째, 문자열이 잘려서 길이가 4의 배수가 아닌 경우입니다. 원본 문자열을 그대로 복사했는지 먼저 확인하세요. 그래도 안 되면 인코딩한 쪽의 문자셋이 UTF-8인지 확인해 보세요.