Base64란 무엇인가요?
Base64는 텍스트, 이미지, 파일 전체 등 어떤 데이터든 안전한 64개 문자, 즉 A–Z, a–z, 0–9, +, /만으로 표현하고 끝에 =를 패딩으로 붙이는 방식입니다(RFC 4648에 정의). 이메일, JSON, HTML, HTTP 헤더처럼 일반 텍스트용으로 만들어진 시스템에서도 바이너리 데이터를 전달할 수 있도록 하기 위해 존재합니다.
입력 3바이트가 Base64 문자 4개가 되므로, 인코딩된 데이터는 원본보다 약 33% 더 큽니다. 예를 들어 텍스트 Hi는 SGk=가 됩니다. Base64는 이메일 첨부 파일, HTML과 CSS의 data: 이미지 URI, 파일을 담은 API 응답, JSON Web Token, HTTP Basic 인증 헤더 등에서 볼 수 있습니다.

Base64 디코딩 방법
디코딩 입력란에 붙여넣으세요. 줄바꿈, 공백, data:...;base64, 접두사, URL-safe 문자(- 및 _), 누락된 = 패딩을 모두 처리합니다.
데이터가 텍스트라면 디코딩된 UTF-8 텍스트가 바로 나타나며, 그대로 복사할 수 있습니다.
데이터가 파일이라면 디코더가 첫 바이트로 형식을 인식합니다. 이미지는 미리보기로 표시되고, PDF, ZIP 등 기타 파일은 다운로드할 수 있습니다.
Advertisement
텍스트나 파일을 Base64로 인코딩하는 방법
인코딩 탭에 텍스트를 입력하거나 붙여넣으세요. UTF-8로 인코딩되므로 악센트 문자, 한글을 비롯한 아시아 문자, 이모지도 정확하게 왕복 변환됩니다.
URL과 JWT에 쓰이는 Base64URL이 필요하면 URL-safe를, MIME 이메일 본문용이라면 76자마다 줄바꿈을 선택하세요.
파일 → Base64 탭에 최대 10 MB까지 아무 파일이나 끌어다 놓으세요. 원시 Base64나 data:image/png;base64,... 같은 바로 쓸 수 있는 data URI를 복사해 HTML이나 CSS에 삽입할 수 있습니다.
Base64 이미지 변환과 Base64 PDF 변환
Base64는 웹 페이지나 이메일에 삽입된 이미지, API가 반환한 PDF처럼 파일을 감싸고 있는 경우가 많습니다. 디코더는 매직 넘버라고 불리는 첫 바이트를 확인해 파일 종류를 판별합니다. PNG, JPEG, GIF, WebP, SVG 이미지는 실시간 미리보기가 표시되고, PDF, ZIP, GZIP, MP3, MP4 파일에는 다운로드 버튼이 나타납니다. PDF는 새 탭에서 열 수도 있습니다.
반대 방향인 이미지 Base64 변환은 파일 → Base64 탭에서 할 수 있습니다. 이미지를 끌어다 놓고 data URI를 복사하세요.
Advertisement
Base64 종류: 표준, URL-safe, MIME, Data URI
+와 /를 사용하고 =로 패딩합니다. 대부분의 라이브러리와 API에서 기본값입니다.
+와 /를 -와 _로 바꾸고 보통 패딩을 생략하므로, 결과를 URL이나 파일 이름에 넣을 수 있습니다. JSON Web Token이 이 방식을 사용합니다.
표준 Base64를 76자 단위의 줄로 나눈 것으로, 이메일 첨부 파일에 쓰입니다.
data:image/png;base64,처럼 파일 형식을 나타내는 접두사를 붙인 Base64로, 브라우저가 인라인으로 표시할 수 있습니다.
Base64는 암호화가 아니라 인코딩입니다
Base64는 데이터를 안전하게 전송할 수 있게 해 줄 뿐, 비밀로 만들어 주지는 않습니다. 이 도구를 포함해 누구나 순식간에 디코딩할 수 있습니다.
비밀번호나 키를 숨기는 데 Base64를 절대 사용하지 마세요. HTTP Basic 인증 헤더는
user:password를 Base64로 바꾼 것에 불과하므로 반드시 HTTPS로만 전송해야 합니다. 사이트 인증서는 SSL 인증서 확인 도구로 점검하세요.JWT 페이로드는 누구나 읽을 수 있습니다. JSON Web Token의 가운데 부분은 Base64URL로 인코딩된 JSON이므로, 토큰을 가진 사람은 누구나 클레임을 읽을 수 있습니다.
이 도구의 디코딩은 비공개로 이루어집니다. 이 도구는 전적으로 브라우저에서 실행되며, 붙여넣거나 업로드한 데이터는 당사 서버에 전달되지 않습니다.
진짜 비밀 유지가 필요하다면? 제대로 된 암호화를 사용하고, 비밀번호 생성기로 강력한 비밀 값을 만드세요.
Advertisement
JavaScript, Python, 명령줄에서 Base64 사용하기
모든 언어에 Base64가 내장되어 있습니다. 텍스트는 먼저 UTF-8로 인코딩해야 한다는 점을 기억하세요. 그렇지 않으면 영어 이외의 문자가 깨집니다.
// Encode UTF-8 text
const b64 = btoa(String.fromCharCode(...new TextEncoder().encode('héllo'))) // 'aMOpbGxv'
// Decode back to text
const text = new TextDecoder().decode(Uint8Array.from(atob(b64), (c) => c.charCodeAt(0)))import base64
b64 = base64.b64encode('héllo'.encode()).decode() # 'aMOpbGxv'
text = base64.b64decode(b64).decode() # 'héllo'
url_safe = base64.urlsafe_b64encode(b'\xfb\xff\xbf') # b'-_-_'echo -n 'hello' | base64 # aGVsbG8=
echo 'aGVsbG8=' | base64 --decode # hello
base64 -w 0 image.png > image.txt # Linux: one line, no wrapping[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('hello')) # aGVsbG8=
[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('aGVsbG8=')) # hello더 많은 인코딩 및 텍스트 도구
텍스트와 데이터 작업에 유용한 다른 변환 도구입니다.