오리데브오리박스

Base64 인코딩·디코딩

텍스트를 Base64로 바꾸거나 Base64를 원래 글자로 되돌립니다. 한글은 UTF-8 기준이고, 입력한 내용은 서버로 보내지 않습니다.

입력

텍스트

결과

Base64

Base64 변환 예시

원문Base64URL-safe
helloaGVsbG8=aGVsbG8
한글7ZWc6riA7ZWc6riA
??>Pz8+Pz8-

Base64는 A–Z, a–z, 0–9, +, / 64개 글자와 채움 문자 =를 씁니다. 데이터 URL(data:image/png;base64,...), 이메일 첨부, HTTP 기본 인증 헤더에서 볼 수 있습니다.

이럴 때 씁니다

코드로 하려면

자바스크립트의 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가 이 형식을 씁니다. 디코딩할 때는 두 형식을 모두 알아서 읽습니다.

디코딩했더니 오류가 나요.

디코딩한 결과가 글자가 아니라 이미지·파일 데이터이면 텍스트로 보여 줄 수 없습니다. 중간이 잘리거나 공백이 아닌 다른 문자가 섞여 있지 않은지도 확인하세요.