본문 바로가기

Base64 변환기 - 텍스트·이미지 인코딩/디코딩 완벽 가이드

Base64 인코딩의 원리부터 텍스트, 이미지, 파일 변환 실무 활용까지 개발자 필수 도구를 총정리합니다.


Base64란 무엇인가?

Base64는 바이너리 데이터를 64개의 안전한 ASCII 문자(A-Z, a-z, 0-9, +, /)로 변환하는 인코딩 방식입니다. Base64 변환기를 사용하면 텍스트, 이미지, 파일 등 모든 종류의 데이터를 Base64 문자열로 인코딩하거나, Base64 문자열을 원래 데이터로 디코딩할 수 있습니다.

Base64의 이름은 64개의 문자(2의 6승)를 사용한다는 데서 유래합니다. 이메일 첨부파일, HTML 내 이미지 삽입, API 인증, JWT 토큰 등 텍스트만 전송 가능한 환경에서 바이너리 데이터를 안전하게 전달하기 위해 개발되었습니다.

Base64는 암호화인가요?

아닙니다. Base64는 인코딩이지 암호화가 아닙니다. 누구나 Base64 문자열을 디코딩하여 원래 데이터를 복원할 수 있으므로, 보안 목적으로 사용해서는 안 됩니다. 데이터의 형식 변환 도구일 뿐입니다.

Base64 인코딩 원리

변환 과정

Base64 인코딩은 3단계로 이루어집니다. 먼저 입력 데이터를 바이너리(0과 1)로 변환합니다. 다음으로 이 바이너리를 6비트씩 그룹으로 나눕니다. 마지막으로 각 6비트 그룹을 Base64 문자 테이블에서 대응하는 문자로 변환합니다.

인코딩 예시

단계설명
원문ManASCII 텍스트
ASCII 코드77, 97, 110각 문자의 10진수 값
바이너리01001101 01100001 011011108비트씩 3바이트
6비트 분할010011 010110 000101 1011106비트씩 4그룹
10진수19, 22, 5, 46각 그룹의 값
Base64T, W, F, u테이블 대응 문자

결과: "Man" → "TWFu". 3바이트가 4문자로 변환되므로 데이터 크기가 약 33% 증가합니다.

패딩(=) 규칙

입력 데이터가 3의 배수가 아닐 때 Base64 출력 끝에 = 패딩이 추가됩니다. 1바이트 남으면 ==, 2바이트 남으면 =이 붙습니다. 예: "M" → "TQ==", "Ma" → "TWE=".

Base64 변환기 사용법

텍스트 인코딩

온라인 Base64 변환기에 접속하여 텍스트를 입력 영역에 붙여넣고 "인코딩" 버튼을 클릭합니다. 결과로 나온 Base64 문자열을 복사하여 필요한 곳에 사용합니다.

텍스트 디코딩

Base64 문자열을 입력하고 "디코딩" 버튼을 클릭하면 원래 텍스트로 복원됩니다. API 응답이나 JWT 토큰의 페이로드를 확인할 때 유용합니다.

이미지 인코딩

이미지 파일을 업로드하면 Base64 Data URI 형식(data:image/png;base64,...)으로 변환됩니다. 이 문자열을 HTML의 img 태그 src 속성에 직접 넣으면 별도 파일 없이 이미지를 표시할 수 있습니다.

실무 활용 사례

이메일 첨부파일(MIME)

이메일 프로토콜(SMTP)은 원래 7비트 ASCII만 전송할 수 있었습니다. 이미지, 문서 등 바이너리 파일을 첨부하려면 Base64로 인코딩하여 텍스트 형태로 전송합니다. 이것이 MIME(Multipurpose Internet Mail Extensions)의 핵심 메커니즘입니다.

API 인증(HTTP Basic Auth)

HTTP Basic 인증에서는 "사용자명:비밀번호"를 Base64로 인코딩하여 Authorization 헤더에 포함합니다. 예: Authorization: Basic dXNlcjpwYXNz. 주의할 점은 이것이 암호화가 아니므로 반드시 HTTPS와 함께 사용해야 합니다.

JWT (JSON Web Token)

JWT 토큰은 헤더, 페이로드, 서명의 세 부분이 Base64url로 인코딩되어 점(.)으로 연결된 구조입니다. 토큰의 페이로드를 디코딩하면 사용자 정보와 권한을 확인할 수 있습니다.

설정 파일 내 바이너리 데이터

JSON, YAML, XML 등 텍스트 기반 설정 파일에 바이너리 데이터(인증서, 아이콘, 키 파일 등)를 포함해야 할 때 Base64로 인코딩하여 문자열로 저장합니다.

Data URI와 이미지 인코딩

Data URI 형식

Data URI는 작은 파일을 HTML이나 CSS에 직접 삽입할 수 있게 해주는 형식입니다. 구조는 data:[미디어타입];base64,[데이터]입니다.

파일 형식Data URI prefix적합한 크기
PNGdata:image/png;base64,~5KB 이하
JPEGdata:image/jpeg;base64,~5KB 이하
SVGdata:image/svg+xml;base64,~10KB 이하
GIFdata:image/gif;base64,~5KB 이하
WOFF2data:font/woff2;base64,~20KB 이하

장점과 단점

장점은 HTTP 요청 수가 줄어 초기 렌더링이 빨라지고, 단일 파일에 모든 리소스가 포함되어 배포가 간편합니다. 단점은 Base64 인코딩으로 파일 크기가 33% 증가하고, 브라우저 캐싱이 불가능하며, 큰 파일에는 부적합합니다.

방송 오버레이에서의 활용

인터넷 방송 오버레이에서 작은 아이콘이나 로고를 Base64 이미지 변환기로 Data URI로 변환하여 HTML에 직접 삽입하면 외부 이미지 로딩 실패로 인한 깨짐 현상을 방지할 수 있습니다.

개발자 가이드

프로그래밍 언어별 Base64

언어인코딩디코딩
JavaScriptbtoa() / Buffer.from().toString('base64')atob() / Buffer.from(str, 'base64')
Pythonbase64.b64encode()base64.b64decode()
JavaBase64.getEncoder().encode()Base64.getDecoder().decode()
PHPbase64_encode()base64_decode()
Gobase64.StdEncoding.EncodeToString()base64.StdEncoding.DecodeString()

Base64url vs 표준 Base64

표준 Base64는 +, /, = 문자를 사용하지만, URL에서는 이 문자들이 특별한 의미를 가집니다. Base64url은 +를 -, /를 _로 대체하고 패딩(=)을 생략하여 URL에 안전하게 사용할 수 있습니다. JWT는 Base64url을 사용합니다.

자주 묻는 질문

Q. Base64 인코딩하면 데이터 크기가 얼마나 커지나요?

약 33% 증가합니다. 3바이트의 바이너리 데이터가 4개의 ASCII 문자로 변환되기 때문입니다. 1MB 이미지를 Base64로 인코딩하면 약 1.33MB가 됩니다.

Q. Base64로 인코딩한 데이터는 안전한가요?

Base64는 암호화가 아니므로 누구나 디코딩할 수 있습니다. 민감한 데이터는 Base64만으로 보호할 수 없으며, AES, RSA 같은 암호화 알고리즘을 사용해야 합니다.

Q. 큰 파일도 Base64로 변환해도 되나요?

기술적으로는 가능하지만 권장하지 않습니다. 33%의 크기 증가와 메모리 사용량을 고려하면, 수 MB 이상의 파일은 바이너리 형태로 직접 전송하는 것이 효율적입니다.

Q. Base64 문자열에 줄바꿈이 포함되어 있는데 정상인가요?

MIME 표준에서는 76자마다 줄바꿈(CRLF)을 삽입합니다. 이는 이메일 전송을 위한 것이며, 웹에서 사용할 때는 줄바꿈을 제거하고 한 줄로 사용해야 합니다.

3일 무료체험큰손탐지기, 지금 바로 시작하세요

설치 없이 웹에서 바로 사용 가능 · PC & 모바일 지원

무료체험 시작
카카오톡 상담