Base64 인코더/디코더
텍스트를 Base64로 인코딩하거나 Base64 문자열을 원본 텍스트로 디코딩합니다.
Base64란?
Base64는 바이너리 데이터를 텍스트(ASCII)로 변환하는 인코딩 방식입니다. 이메일 전송, 웹 통신 등에서 바이너리 데이터를 안전하게 전달하기 위해 널리 사용됩니다. "Base64"라는 이름은 64개의 출력 문자(A-Z, a-z, 0-9, +, /)를 사용하는 데서 유래했습니다. 인코딩된 결과는 원본보다 약 33% 더 커지지만, 텍스트 기반 프로토콜에서 안전하게 전송할 수 있다는 장점이 있습니다.
Base64 활용 사례
| 활용 분야 | 설명 |
|---|---|
| 이메일 첨부파일 | MIME 표준에서 이메일 첨부파일을 텍스트로 변환하여 전송합니다. |
| 데이터 URI | HTML/CSS에서 이미지를 Base64로 인코딩하여 직접 삽입할 수 있습니다 (예: data:image/png;base64,...). |
| API 인증 헤더 | HTTP Basic Authentication에서 사용자명:비밀번호를 Base64로 인코딩하여 Authorization 헤더에 포함합니다. |
| JWT 토큰 | JSON Web Token의 헤더와 페이로드가 Base64url로 인코딩되어 전달됩니다. |
Base64 인코딩 원리
Base64 인코딩은 입력 데이터를 6비트 단위로 나누어 변환합니다. 원본 데이터의 각 바이트(8비트)를 3바이트(24비트)씩 묶은 뒤, 이를 4개의 6비트 그룹으로 나눕니다. 각 6비트 값(0~63)은 Base64 문자 테이블에서 대응하는 문자로 변환됩니다.
입력 데이터의 길이가 3의 배수가 아닌 경우, 부족한 바이트만큼 패딩 문자("=")가 결과 끝에 추가됩니다. 예를 들어 1바이트 입력은 "==", 2바이트 입력은 "=" 하나가 패딩으로 붙습니다.
예시: "Hi" (2바이트)
H(72) = 01001000, i(105) = 01101001
6비트 분할: 010010 | 000110 | 1001(00) → S, G, k
결과: "SGk=" (패딩 1개)
자주 묻는 질문 (FAQ)
Base64는 암호화인가요?
아닙니다. Base64는 인코딩 방식으로, 누구나 쉽게 디코딩할 수 있습니다. 보안 목적으로 사용해서는 안 되며, 데이터를 텍스트 형식으로 안전하게 전달하기 위한 수단입니다.
Base64로 인코딩하면 크기가 얼마나 커지나요?
Base64 인코딩 결과는 원본 데이터보다 약 33% 커집니다. 3바이트의 원본 데이터가 4개의 Base64 문자(4바이트)로 변환되기 때문입니다.
한글도 Base64로 인코딩할 수 있나요?
네, 가능합니다. 본 도구는 UTF-8 인코딩을 사용하여 한글을 포함한 모든 유니코드 문자를 Base64로 변환할 수 있습니다. 한글은 한 글자당 3바이트의 UTF-8 데이터로 변환된 후 Base64 인코딩됩니다.
Base64와 Base64url의 차이는 무엇인가요?
표준 Base64는 "+"와 "/" 문자를 사용하지만, URL에서 이 문자들은 특수한 의미를 가집니다. Base64url은 "+"를 "-"로, "/"를 "_"로 대체하고 패딩("=")을 생략하여 URL에서 안전하게 사용할 수 있도록 합니다. JWT 등에서 주로 사용됩니다.