Base64 인코딩·디코딩
텍스트를 Base64로 바꾸거나 Base64를 원래 글자로 되돌립니다. 한글은 UTF-8 기준이고, 입력한 내용은 서버로 보내지 않습니다.
Base64 변환 예시
| 원문 | Base64 | URL-safe |
|---|---|---|
hello | aGVsbG8= | aGVsbG8 |
한글 | 7ZWc6riA | 7ZWc6riA |
??> | Pz8+ | Pz8- |
Base64는 A–Z, a–z, 0–9, +, / 64개 글자와 채움 문자 =를 씁니다. 데이터 URL(data:image/png;base64,...), 이메일 첨부, HTTP 기본 인증 헤더에서 볼 수 있습니다.
이럴 때 씁니다
- API 문서의 Base64 예시를 원문으로 확인할 때
- HTTP 기본 인증 헤더(Basic ...)의 아이디:비밀번호 부분을 확인할 때
- 설정 파일·쿠버네티스 Secret 값을 읽거나 만들 때
- 이메일 원문에 인코딩된 제목을 읽을 때
코드로 하려면
자바스크립트의 btoa는 한글을 바로 넣으면 오류가 납니다. UTF-8 바이트로 바꾼 뒤 인코딩하세요.
const bytes = new TextEncoder().encode("한글");
btoa(String.fromCharCode(...bytes)); // 7ZWc6riA
# 파이썬
import base64
base64.b64encode("한글".encode()).decode() # 7ZWc6riA
base64.urlsafe_b64encode(data) # URL-safe다른 개발·데이터 도구
자주 묻는 질문
Base64는 암호화인가요?
아니요. 누구나 되돌릴 수 있는 표기 방식일 뿐입니다. 비밀번호나 개인정보를 숨기는 용도로 쓰면 안 됩니다.
Base64로 바꾸면 왜 길어지나요?
3바이트를 영문·숫자 4글자로 나타내므로 약 33% 길어집니다. 대신 이메일, URL, JSON처럼 글자만 다루는 곳에 바이너리 데이터를 넣을 수 있습니다.
한글도 인코딩할 수 있나요?
네. 한글을 UTF-8 바이트로 바꾼 뒤 Base64로 만듭니다. "한글"은 7ZWc6riA가 됩니다. 다른 도구와 결과가 다르면 그 도구가 EUC-KR을 쓰는지 확인하세요.
URL-safe Base64는 무엇인가요?
+와 /는 URL에서 특별한 뜻이 있어서 -와 _로 바꾸고 끝의 =를 뺀 형식입니다. JWT가 이 형식을 씁니다. 디코딩할 때는 두 형식을 모두 알아서 읽습니다.
디코딩했더니 오류가 나요.
디코딩한 결과가 글자가 아니라 이미지·파일 데이터이면 텍스트로 보여 줄 수 없습니다. 중간이 잘리거나 공백이 아닌 다른 문자가 섞여 있지 않은지도 확인하세요.