본문으로 건너뛰기
Case Converter Online
ko

Base64 인코딩 디코딩

텍스트를 Base64로 인코딩하거나 Base64를 읽을 수 있는 텍스트로 디코딩합니다. UTF-8을 완전히 지원하므로 한글도 깨지지 않습니다. 파일을 Base64나 data URL로 바꾸고, Base64를 파일로 저장할 수도 있습니다.

양방향으로 작동합니다. 텍스트를 UTF-8로 읽기 때문에 한글, 악센트 문자, 이모지도 그대로 되돌아옵니다.

파일을 Base64로

출력 형식

선택한 파일이 없습니다. 파일은 기기 안에서 읽으며 업로드되지 않습니다.

Base64를 파일로

위에 Base64를 붙여넣으세요. 가능하면 파일 형식을 자동으로 알아냅니다.

Base64란

Base64는 어떤 데이터든 안전한 문자 64개만으로 적는 방법입니다. A부터 Z, a부터 z, 숫자 0부터 9, 그리고 기호 +와 /를 씁니다. 이메일이나 일부 웹 양식처럼 일반 텍스트만 전달할 수 있는 시스템을 위해 만들어졌습니다. Base64 인코딩을 거치면 이미지, PDF, 한글 같은 어떤 언어의 텍스트든 이런 시스템을 손상 없이 통과할 수 있습니다.

Base64는 이메일 첨부 파일, CSS에 data URL로 넣은 이미지, JSON 웹 토큰(JWT), API 키, HTTP 기본 인증 헤더, 설정 파일 등 여러 곳에서 볼 수 있습니다.

Base64 도구 사용 방법

텍스트 인코딩. 텍스트 입력란에 입력하거나 붙여넣으면 입력하는 동안 오른쪽 입력란에 Base64가 나타납니다. 복사를 눌러 가져가세요.

Base64 디코딩. 오른쪽 Base64 입력란에 Base64를 붙여넣으면 원래 텍스트가 왼쪽에 나타납니다. 공백, 줄바꿈, 빠진 패딩, data:...;base64, 접두사도 모두 받아들입니다.

옵션.

  • URL-safe (- 와 _): +를 -로, /를 _로 바꾸고 = 패딩을 뺍니다. 링크, 쿠키, 파일 이름에 쓰세요.
  • 76자마다 줄바꿈: 결과를 76자 단위로 나눕니다. 이메일(MIME)에서 쓰는 배치입니다.

지우기를 누르면 두 입력란이 모두 비워집니다.

파일을 Base64로. 25MB 이하의 파일을 고릅니다. 문자열만 필요하면 Base64만을, 바로 쓸 수 있는 data:image/png;base64,... 값이 필요하면 Data URL을 고른 뒤 복사를 누릅니다.

Base64를 파일로. Base64나 data URL을 붙여넣습니다. 도구가 PNG, JPEG, GIF, WebP, PDF, ZIP 같은 흔한 형식을 감지해 파일 이름을 제안하고, 이미지라면 미리보기를 보여 줍니다. 파일 다운로드를 눌러 저장합니다.

Base64의 작동 원리

Base64는 입력을 3바이트(24비트)씩 읽습니다. 그 24비트를 6비트씩 네 묶음으로 나눕니다. 6비트 묶음 하나는 0부터 63 사이의 숫자이고, 이 숫자가 Base64 문자표에서 문자 하나를 고릅니다. 3바이트가 들어가서 4글자가 나옵니다. 그래서 Base64 결과는 입력보다 약 3분의 1 커집니다.

텍스트는 먼저 UTF-8로 바이트가 됩니다. 덕분에 악센트 문자와 이모지, 한글도 문제없이 처리됩니다. café는 5바이트가 되고, 그 바이트가 인코딩됩니다. 한글 한 글자는 UTF-8로 3바이트라서 한글 두 글자는 6바이트, Base64로는 정확히 8글자 7ZWc6riA가 됩니다. 오래된 도구 중에는 브라우저 함수 btoa를 그대로 쓰는 경우가 있는데, 이 함수는 Latin-1 밖의 문자가 하나라도 있으면 실패합니다. 한글을 넣으면 오류가 나는 도구가 있는 이유입니다.

예시

입력 Base64 URL-safe
M TQ== TQ
Ma TWE= TWE
Man TWFu TWFu
Hello, World! SGVsbG8sIFdvcmxkIQ== SGVsbG8sIFdvcmxkIQ
café Y2Fmw6k= Y2Fmw6k
Zoë Wm/Dqw== Wm_Dqw
<?> PD8+ PD8-
한글 7ZWc6riA 7ZWc6riA
안녕하세요 7JWI64WV7ZWY7IS47JqU 7JWI64WV7ZWY7IS47JqU

Zoë와 <?> 줄은 URL-safe 형식이 왜 필요한지 보여 줍니다. 링크 안의 /나 +는 링크를 깨뜨릴 수 있지만 _와 -는 안전합니다. 한글 두 예시는 바이트 수가 3의 배수라 패딩이 없고, +나 /도 나오지 않아 두 형식의 결과가 같습니다.

팁과 한계

  • Base64는 보안 수단이 아닙니다. 아무것도 숨기지 않습니다. Base64 텍스트는 원본 데이터와 똑같이 다루세요.
  • 오류 메시지를 확인하세요. * 같은 문자가 섞인 값을 붙여넣으면 어떤 문자가 올바른 Base64가 아닌지 알려 줍니다.
  • 바이너리 데이터는 파일로 받으세요. 디코딩한 바이트가 올바른 UTF-8 텍스트가 아니면 도구가 그렇게 알려 줍니다. 같은 Base64를 Base64를 파일로에 붙여넣고 다운로드하세요.
  • 크기가 커집니다. 3MB 이미지는 Base64로 약 4MB가 됩니다. 인라인 data URL은 작은 아이콘에는 편리하지만 큰 사진에는 느립니다.
  • 디코딩할 때 패딩은 없어도 됩니다. 빠진 =는 도구가 채워 줍니다.

다른 방법으로 Base64 인코딩하기

명령줄 (macOS, Linux). echo -n 'Hello, World!' | base64는 SGVsbG8sIFdvcmxkIQ==를 출력합니다. 디코딩은 base64 -d(예전 macOS에서는 base64 -D)로 합니다. -n을 빼면 끝의 줄바꿈까지 인코딩됩니다.

Windows. certutil -encode input.txt output.txt로 파일을 인코딩합니다. PowerShell에서는 [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('Hello, World!'))로 텍스트를 인코딩합니다.

JavaScript (Node). Buffer.from('Hello, World!').toString('base64')는 SGVsbG8sIFdvcmxkIQ==를, Buffer.from('SGVsbG8=', 'base64').toString()은 Hello를 돌려줍니다.

Python. base64.b64encode('Hello, World!'.encode()).decode()도 같은 결과를 냅니다. base64.urlsafe_b64encode는 = 패딩을 남기므로 Zoë가 Wm_Dqw==가 된다는 점에 주의하세요.

관련 도구

텍스트를 웹 주소에 안전하게 넣으려면 URL 인코더, 디코더를 쓰세요. 텍스트 뒤의 실제 바이트를 보려면 16진수 텍스트 변환기나 UTF-8 인코딩 도구를 사용해 보세요.

Base64 인코더 자주 묻는 질문

Base64를 텍스트로 디코딩하려면 어떻게 하나요?

오른쪽 입력란에 Base64를 붙여넣으면 붙여넣는 즉시 왼쪽에 디코딩된 텍스트가 나타납니다. 예를 들어 SGVsbG8sIFdvcmxkIQ==는 Hello, World!로, 7ZWc6riA는 한글로 디코딩됩니다. 데이터가 이미지나 다른 파일이라면 Base64를 파일로 패널을 쓰세요.

Base64는 암호화의 한 종류인가요?

아닙니다. Base64는 바이트를 적는 방식만 바꿀 뿐입니다. 키나 비밀번호 없이 누구나 1초 만에 디코딩할 수 있습니다. 비밀번호, 토큰, 개인정보를 숨기는 데 절대 쓰지 마세요.

URL-safe Base64는 무엇인가요?

링크나 파일 이름 안에 넣을 수 있도록 문자 두 개를 바꾼 Base64입니다. +는 -로, /는 _로 바뀌고, 끝의 = 패딩은 보통 뺍니다. Zoë라는 텍스트는 표준 Base64로 Wm/Dqw==, URL-safe 형식으로 Wm_Dqw가 됩니다. 이 도구는 두 형식을 모두 디코딩합니다.

Base64 끝에 =가 한두 개 붙는 이유는 무엇인가요?

Base64는 3바이트를 4글자로 바꿉니다. 입력 길이가 3의 배수가 아니면 결과 길이가 4의 배수가 되도록 마지막 묶음을 =로 채웁니다. Ma는 TWE=, M은 TQ==가 됩니다.

파일이 업로드되나요?

아니요. 파일은 브라우저가 읽고 기기 안에서 변환합니다. 서버로 아무것도 보내지 않으므로 개인 문서도 안심하고 변환할 수 있습니다.

코드와 데이터 도구 더 보기

전체 도구 보기