Base64란?
Base64는 바이너리 데이터를 인쇄 가능한 ASCII 문자로 변환하는 인코딩 방식입니다. RFC 4648에 정의되어 있으며 현대 인터넷 프로토콜의 핵심 요소 중 하나입니다. 이름은 64자 알파벳에서 유래합니다: 대문자(A–Z), 소문자(a–z), 숫자(0–9), 특수문자(+와 /). 3바이트의 원시 데이터가 4자의 Base64로 변환되어 크기가 약 33% 증가합니다.
작동 원리
입력 데이터는 3바이트(24비트) 블록으로 분할됩니다. 각 블록은 4개의 6비트 그룹으로 나뉘고, 각 그룹은 해당하는 Base64 문자(값 0–63)로 대체됩니다. 마지막 블록이 불완전하면 = 패딩 문자가 추가됩니다.
주요 활용 사례
JWT 토큰
JSON Web Token은 Base64URL로 인코딩된 세 부분으로 구성됩니다: 헤더, 페이로드, 서명. URL 안전 변형은 +를 -로, /를 _로 대체하여 URL에서 추가 인코딩 없이 사용할 수 있습니다. 많은 개발자가 JWT 내용 확인을 위해 Base64 디코더를 사용합니다.
HTTP Basic 인증
HTTP Basic Auth는 사용자명과 비밀번호를 (:로 연결하여) Base64로 인코딩하고 Authorization 헤더에 전송합니다. 이것은 암호화가 아닙니다—HTTPS 없이는 인증 정보가 노출됩니다.
이메일 첨부(MIME)
SMTP는 ASCII 텍스트만 전송할 수 있습니다. MIME 표준은 첨부 파일을 Base64로 인코딩하여 메일 서버를 통해 전송할 수 있게 합니다.
CSS data URI
작은 이미지나 SVG 아이콘을 CSS에 직접 임베드할 수 있습니다: background: url('data:image/png;base64,...'). 추가 HTTP 요청을 줄일 수 있습니다.
REST API
JSON은 텍스트 데이터만 전송합니다. 따라서 이미지나 바이너리 데이터는 API 요청 본문에서 Base64로 인코딩됩니다.
Base64 ≠ 암호화
Base64는 보안 기술이 아닙니다. 누구든 키 없이 몇 초 만에 디코딩할 수 있습니다. 비밀번호나 개인정보를 Base64만으로 저장하는 것은 심각한 보안 취약점입니다. 민감한 데이터 보호에는 AES-256 또는 RSA를 사용하세요.
URL 안전 변형(Base64URL)
RFC 4648 §5는 Base64URL을 정의합니다: +가 -로, /가 _로 됩니다. OAuth 2.0 PKCE, JWT, 현대 API에 필수적입니다.
개인정보 보호
이 도구는 모든 처리를 브라우저 내에서 수행합니다. 데이터는 서버에 전송되지 않습니다.
댓글