English

Base64 인코딩 · 디코딩

글자와 Base64를 서로 바꿉니다. 한글도 깨지지 않고, 파일도 Base64로 바꿀 수 있습니다.

결과

Base64란?

Base64는 아무 데이터나 영문 대소문자, 숫자, +, / 64가지 글자만으로 바꿔 적는 방법입니다. 글자만 다룰 수 있는 곳(이메일, JSON, URL, HTML)에 이미지나 바이너리 데이터를 넣을 때 씁니다. 3바이트를 4글자로 바꾸므로 크기가 약 33% 늘어납니다.

Base64는 암호화가 아닙니다. 누구나 바로 되돌릴 수 있으니 비밀번호나 개인정보를 숨기는 용도로 쓰면 안 됩니다.

한글이 깨지는 이유

브라우저의 btoa() 함수는 한글을 바로 넣으면 오류가 나고, 다른 도구는 EUC-KR 등 다른 인코딩으로 바꿔서 결과가 다를 수 있습니다. 이 도구는 글자를 웹 표준인 UTF-8 바이트로 바꾼 뒤 인코딩합니다. 예를 들어 ‘안녕’은 7JWI64WV가 됩니다.

URL-safe Base64

일반 Base64의 +와 /는 주소(URL)에서 특별한 뜻이 있어서, 주소나 파일 이름에 넣을 때는 -와 _로 바꾸고 끝의 =를 뺀 URL-safe 형식을 씁니다. JWT 토큰이 이 형식입니다. 디코딩할 때는 두 형식을 모두 알아서 받아들입니다.

자주 묻는 질문

data URI는 무엇인가요?

data:image/png;base64,...처럼 파일 종류를 앞에 붙인 형식입니다. HTML의 img src나 CSS의 url()에 그대로 넣으면 별도 파일 없이 이미지가 보입니다. 작은 아이콘에 알맞고, 큰 이미지는 페이지를 무겁게 합니다.

디코딩 결과가 16진수로 나와요.

원래 데이터가 글자가 아니라 이미지·압축 파일 같은 바이너리라는 뜻입니다. 앞부분이 89 50 4e 47이면 PNG, ff d8 ff면 JPEG입니다.

입력한 내용이나 파일이 서버로 가나요?

아니요. 변환은 브라우저 안에서만 하며, 입력한 글자와 파일은 어디에도 보내지 않습니다.

AfterL · 개인정보처리방침