개발자 도구
모든 도구

Base64 인코딩·디코딩

텍스트를 Base64로 인코딩하거나 디코딩합니다. UTF-8을 안전하게 처리하며, 파일을 data URL로 변환할 수도 있습니다.

100% 브라우저 처리

파일 → Base64 (data URL)

이미지 등 파일을 선택하면 data URL 형태의 Base64 문자열로 변환됩니다. 파일은 브라우저에서만 읽힙니다.

Base64는 이진 데이터나 텍스트를 64개의 ASCII 문자(A~Z, a~z, 0~9, +, /)만으로 표현하는 인코딩 방식입니다. 3바이트(24비트)를 6비트씩 끊어 4개의 문자로 바꾸기 때문에, 인코딩 후 데이터 크기가 약 33% 늘어납니다. 텍스트만 안전하게 전달되는 통로(이메일 본문, JSON, URL, HTTP 헤더)로 이진 데이터를 실어 보내야 할 때 주로 쓰입니다. 이 도구는 텍스트를 Base64로 인코딩하거나 Base64 문자열을 원래 텍스트로 디코딩하고, 이미지 같은 파일을 data URL로 변환하는 기능을 제공합니다.

특히 한글이나 이모지처럼 멀티바이트 문자가 섞인 텍스트를 다룰 때, 브라우저 내장 btoa/atob를 그대로 쓰면 Latin-1 범위를 벗어나 오류가 나거나 글자가 깨집니다. 이 도구는 TextEncoder로 먼저 UTF-8 바이트로 변환한 뒤 인코딩하고, 디코딩 시 TextDecoder로 되돌리므로 어떤 언어의 문자든 정확히 복원됩니다.

모든 변환은 브라우저에서만 실행되어 입력값이 외부로 전송되지 않습니다. 파일을 data URL로 만들 때도 FileReader로 로컬에서만 읽으므로, 공개 전 이미지나 내부 자산을 다룰 때도 안전합니다.

사용 방법

  1. 1

    텍스트 입력

    인코딩할 일반 텍스트 또는 디코딩할 Base64 문자열을 입력란에 붙여 넣습니다.

  2. 2

    방향 선택

    '인코딩' 버튼은 텍스트를 Base64로, '디코딩' 버튼은 Base64를 원래 텍스트로 변환합니다.

  3. 3

    결과 확인·복사

    변환 결과가 모노스페이스로 표시되며, 복사 버튼으로 클립보드에 담을 수 있습니다.

  4. 4

    파일 변환(선택)

    하단의 파일 선택을 사용하면 이미지 등 파일을 data URL(예: data:image/png;base64,...)로 변환할 수 있습니다.

이럴 때 유용해요

작은 아이콘을 CSS에 임베드

로고나 아이콘 이미지를 data URL로 만들어 CSS·HTML에 직접 넣으면 별도 HTTP 요청 없이 즉시 렌더링됩니다.

Basic 인증 헤더 만들기

'아이디:비밀번호' 문자열을 인코딩해 Authorization: Basic 헤더 값으로 쓰거나, 받은 헤더를 디코딩해 내용을 확인합니다.

깨진 인코딩 데이터 복원

로그나 응답에 남은 Base64 문자열을 디코딩해 실제 내용이 무엇인지 사람이 읽을 수 있게 풀어 봅니다.

테스트용 data URI 생성

프런트엔드 개발 중 더미 이미지가 필요할 때 파일을 data URL로 바꿔 코드에 바로 붙여 씁니다.

활용 팁

  • Basic 인증 헤더는 '아이디:비밀번호' 형식의 문자열을 Base64로 인코딩해 만듭니다.
  • data URL은 작은 아이콘을 CSS나 HTML에 직접 임베드할 때 유용하지만, 인코딩 시 용량이 약 33% 늘어나므로 큰 이미지에는 부적합합니다.
  • 디코딩 시 오류가 난다면 문자열에 공백이나 줄바꿈, URL-safe 변형(-, _) 문자가 섞여 있지 않은지 확인하세요.
  • Base64는 암호화가 아니라 인코딩입니다. 누구나 디코딩할 수 있으므로 비밀번호를 숨기는 용도로는 적합하지 않습니다.
  • 끝의 = 기호는 길이를 4의 배수로 맞추는 패딩입니다. 패딩이 잘리면 디코딩이 실패할 수 있습니다.
  • data URL의 'data:image/png;base64,' 같은 접두사는 형식을 나타내는 헤더일 뿐, 순수 Base64 데이터는 쉼표 뒤부터입니다.

자주 묻는 질문

한글이 깨지지 않나요?

아니요. TextEncoder로 UTF-8 바이트로 변환한 뒤 인코딩하므로 한글, 이모지, 특수문자 모두 정확하게 복원됩니다.

파일이 서버로 업로드되나요?

아니요. 파일은 브라우저의 FileReader로만 읽혀 data URL로 변환되며 외부로 전송되지 않습니다.

Base64는 안전한 암호화인가요?

아닙니다. Base64는 가역적인 인코딩일 뿐 암호화가 아닙니다. 누구나 원문을 복원할 수 있으므로 보안 목적에는 사용하지 마세요.

URL-safe Base64도 지원하나요?

기본 변환은 표준 Base64(+, /)를 사용합니다. JWT 등에 쓰이는 URL-safe 변형(-, _)을 다루려면 디코딩 전에 -를 +로, _를 /로 치환해야 합니다.

변환할 수 있는 길이에 제한이 있나요?

실용적인 텍스트 길이에는 제한이 없습니다. 매우 큰 파일은 브라우저 메모리에 따라 처리 속도가 달라질 수 있습니다.

Base64로 인코딩하면 왜 크기가 늘어나나요?

3바이트를 4개의 문자로 표현하기 때문에 원본보다 약 33% 커집니다. 줄바꿈을 넣는 형식이면 그보다 조금 더 늘 수 있습니다.

btoa를 그냥 쓰면 안 되나요?

btoa는 문자 코드가 255를 넘는 글자(한글, 이모지 등)에서 오류를 냅니다. 이 도구는 UTF-8 바이트로 먼저 변환하므로 그 문제를 피합니다.

끝에 붙는 = 기호는 무엇인가요?

출력 길이를 4의 배수로 맞추기 위한 패딩 문자입니다. 원본 바이트 수에 따라 0~2개가 붙으며, 디코딩 시 자동으로 처리됩니다.

함께 쓰면 좋은 도구