Base64 인코딩 사용 방법
- 일반 텍스트 칸에 글을 입력하면 오른쪽 Base64 칸에 인코딩 결과가 바로 나옵니다.
- 반대로 Base64 칸에 값을 붙여 넣으면 왼쪽에 원래 글이 나타납니다.
- 이미지나 PDF는 아래 파일 영역에 놓으면 data URI와 Base64 문자열을 만들어 줍니다.
- 이미지·파일을 담은 Base64는 Base64를 파일로 저장 버튼으로 원래 파일로 되돌릴 수 있습니다.
Base64 인코딩이란?
Base64는 사진·파일 같은 이진 데이터나 한글 같은 문자를 영문 대소문자, 숫자, +, / 64개 문자만으로 바꿔 표현하는 방식입니다. 이메일 첨부 파일, HTML·CSS에 이미지를 직접 넣는 data URI, JSON으로 파일을 주고받는 API, 로그인 인증 헤더 등에 널리 쓰입니다.
3바이트를 4글자로 바꾸기 때문에 결과는 원본보다 약 33% 커집니다. 길이를 4의 배수로 맞추기 위해 끝에 = 기호가 0~2개 붙습니다.
Base64는 암호화가 아닙니다. 누구나 쉽게 디코딩할 수 있으므로 비밀번호나 개인정보를 보호하는 용도로 쓰면 안 됩니다.
한글 Base64 인코딩 결과가 사이트마다 다른 이유
Base64는 글자가 아니라 바이트를 변환합니다. 같은 "안녕"이라도 UTF-8로는 6바이트(7JWI64WV), EUC-KR로는 4바이트(vsiz5w==)라 결과가 다릅니다. 웹과 대부분의 API는 UTF-8을 쓰므로 이 도구도 UTF-8로 변환합니다. 디코딩했는데 글자가 깨진다면 원본이 EUC-KR이거나 텍스트가 아닌 파일일 가능성이 큽니다.
URL-safe Base64와 data URI
일반 Base64의 +, /, =는 주소(URL)에서 특별한 의미가 있어 그대로 쓰면 문제가 생깁니다. URL-safe Base64는 +를 -로, /를 _로 바꾸고 끝의 =를 생략합니다. JWT 토큰이 대표적인 예입니다.
data URI는 data:image/png;base64,iVBOR...처럼 파일 형식과 Base64를 함께 적어, 별도 파일 없이 HTML이나 CSS에 이미지를 바로 넣는 방식입니다. 작은 아이콘에는 요청 수를 줄여 주지만, 큰 이미지는 용량이 33% 늘어나므로 일반 파일로 두는 편이 낫습니다.
Base64 인코딩 후 용량 계산법
Base64 결과의 길이는 4 × ⌈원본 바이트 ÷ 3⌉글자입니다. 3바이트가 4글자가 되므로 약 4/3배로 커집니다.
- 원본 3바이트 → 4글자
- 원본 100KB → 약 133KB
- 원본 1MB 이미지 → 약 1.33MB
JWT 토큰은 점(.)으로 나뉜 세 부분 중 가운데가 URL-safe Base64로 인코딩된 JSON입니다. 가운데 부분만 붙여 넣으면 담긴 정보를 읽을 수 있지만, 서명 검증은 하지 않으므로 신뢰 여부는 판단할 수 없습니다.