Base64
Encoder
텍스트·파일을 Base64로 인코딩
파일을 여기에 드래그하거나 클릭하세요
Base64 인코딩이란?
Base64 인코딩은 바이너리 데이터를 64개의 ASCII 출력 가능 문자(A–Z, a–z, 0–9, +, /)로 변환하는 방식으로 RFC 4648 표준을 따릅니다. 3바이트를 4개의 ASCII 문자로 변환하므로 데이터 크기가 약 33% 증가합니다. 암호화가 아닌 단순 인코딩으로 키 없이 누구나 디코딩할 수 있습니다. URL-safe 방식은 +를 -, /를 _로 대체해 URL, 파일명, 쿼리스트링에 안전하게 사용할 수 있으며 JWT 토큰은 항상 이 방식을 사용합니다.
활용 예시
- JWT 페이로드 생성 — URL-safe Base64로 header.payload 인코딩
- HTML img 태그에 data:image/png;base64,...로 이미지 직접 삽입
- HTTP Basic Auth — Authorization: Basic base64(user:pass)
- 이메일 첨부파일 — MIME/multipart 바이너리 첨부 인코딩
- CSS @font-face에 폰트 파일 Base64 직접 삽입
- JSON이나 XML에 바이너리 데이터 안전하게 포함
자주 묻는 질문 (FAQ)
Q. Base64 인코딩은 암호화인가요?
A. 아닙니다. Base64는 암호화가 아닌 인코딩입니다. 누구나 키 없이 디코딩할 수 있으므로 민감한 정보를 숨기는 데 사용할 수 없습니다. 보안이 필요하다면 AES나 RSA 암호화를 사용하세요.
Q. 왜 데이터 크기가 33% 증가하나요?
A. Base64는 3바이트(24비트)를 6비트씩 나눠 4개의 ASCII 문자로 변환합니다. 이 3:4 비율로 인해 출력은 항상 입력보다 33% 커집니다.
Q. Standard와 URL-safe의 차이는 무엇인가요?
A. Standard Base64는 +와 /를 사용하는데 이 문자들은 URL에서 특별한 의미를 가집니다. URL-safe는 +를 -, /를 _로 대체하여 URL, 파일명, 쿼리스트링에 안전하게 사용할 수 있습니다. JWT는 항상 URL-safe를 사용합니다.
Q. 파일을 어떻게 Base64로 인코딩하나요?
A. 파일을 드래그 앤 드롭 영역에 놓거나 클릭해서 선택하면 브라우저의 FileReader API가 파일을 읽어 자동으로 Base64로 변환합니다. 파일은 서버로 전송되지 않습니다.
Q. 이미지를 HTML에 Base64로 삽입하는 방법은?
A. 이미지 파일을 인코딩한 후 결과를 복사해 img 태그에 src="data:image/png;base64,{인코딩값}" 형태로 사용합니다. 추가 HTTP 요청이 없지만 브라우저 캐싱이 불가하므로 소용량 아이콘에 적합합니다.
Q. Base64 끝의 = 패딩 문자는 무엇인가요?
A. Base64는 3바이트 단위로 처리합니다. 입력 길이가 3의 배수가 아닐 때 출력 길이를 4의 배수로 맞추기 위해 1~2개의 =으로 패딩합니다. URL-safe 모드에서는 패딩을 생략하기도 합니다.
Q. 한글이나 유니코드 문자도 인코딩할 수 있나요?
A. 네. TextEncoder API를 사용해 UTF-8로 인코딩한 후 Base64로 변환하므로 한글, 중국어, 일본어 등 모든 유니코드 문자를 처리할 수 있습니다.
Q. 입력한 데이터가 서버로 전송되나요?
A. 아닙니다. 모든 인코딩은 브라우저 JavaScript에서만 처리됩니다. 파일도 서버에 업로드되지 않습니다.