Base64 인코더/디코더

텍스트를 Base64로 인코딩하거나 디코딩하세요.

Base64는 바이너리 데이터(이미지·파일)를 텍스트(ASCII)로 바꿔서 텍스트 기반 채널(JSON·XML·이메일)을 통해 전달할 때 쓰는 인코딩이에요.

Base64가 쓰이는 곳

- **이메일 첨부파일**: MIME 표준이 Base64 사용 - **Data URL**: HTML/CSS에서 이미지를 인라인으로 (`data:image/png;base64,...`) - **JWT 토큰**: 헤더·페이로드 부분이 Base64URL 인코딩 - **Basic Auth**: HTTP Basic 인증 헤더 (`Basic dXNlcjpwYXNz`) - **API 응답**: 작은 이미지·바이너리를 JSON에 끼워 넣을 때

Base64 vs Base64URL

두 변형이 있어요. - **표준 Base64**: `A-Z a-z 0-9 + /` + 패딩 `=` - **Base64URL**: `+` → `-`, `/` → `_`, `=` 패딩 생략 URL이나 파일명에 직접 넣을 때는 Base64URL이에요. JWT가 그래서 Base64URL을 써요. 표준 Base64에 `+/=`이 들어가면 URL에서 다시 인코딩되거나 깨질 수 있거든요.

Base64는 암호화가 아니에요

이건 정말 중요해요. Base64는 누구나 바로 디코딩할 수 있어요. 비밀번호·API 키·민감 데이터를 Base64로 '숨기는' 코드가 가끔 보이는데, 보안 효과 0이에요. 진짜 보호하려면 AES 같은 대칭키 암호화나 RSA 같은 비대칭 암호화를 써야 해요.

자주 묻는 질문

Base64 인코딩하면 데이터 크기가 어떻게 되나요?

약 33% 커져요. 3바이트 원본이 4글자 Base64가 되거든요. 1MB 이미지를 Data URL로 넣으면 약 1.33MB가 돼요.

Data URL과 외부 이미지, 어느 쪽이 좋아요?

10KB 이하 작은 이미지는 Data URL이 HTTP 요청 1개를 줄여줘서 유리해요. 큰 이미지는 외부 파일이 캐시 가능하고 페이지 크기도 작아요.

끝에 = 표시는 뭐예요?

패딩이에요. Base64는 4글자 단위로 떨어져야 해서 부족하면 `=`로 채워요. `=` 1개나 2개가 붙어요. URL에서는 `=`도 인코딩 대상이라 Base64URL은 보통 패딩을 빼요.