본문으로 건너뛰기
  • 이미지 압축이미지 도구 · 사진과 그래픽을 JPG나 WebP로 다시 인코딩해 용량을 줄입니다. 품질 슬라이더와 선택형 크기 축소를 제공합니다.
  • 이미지 크기 조절이미지 도구 · 이미지의 가로와 세로를 픽셀이나 백분율로 바꿉니다. 고품질 축소를 지원합니다.
  • 이미지 변환이미지 도구 · 이미지 한 장이나 여러 장의 형식을 JPG, PNG, WebP로 바꿉니다. 품질과 투명도를 조절할 수 있습니다.
  • 이미지 자르기이미지 도구 · 드래그할 수 있는 선택 영역, 가로세로 비율 프리셋, 정확한 픽셀 입력으로 이미지의 일부를 잘라 냅니다.
  • 이미지 회전·반전이미지 도구 · 사진을 90°나 180° 돌리고 좌우나 상하로 뒤집습니다. 실시간 미리보기를 제공합니다.
  • EXIF 보기·삭제이미지 도구 · 사진의 EXIF 정보(카메라, 날짜, 위치)를 보고, 화질 손실 없이 전부 또는 GPS 위치만 삭제합니다.
  • HEIC JPG 변환이미지 도구 · iPhone과 iPad의 HEIC, HEIF 사진을 어디서나 열리는 JPG나 PNG 파일로 바꿉니다.
  • 이미지 흐림·모자이크이미지 도구 · 사진 속 얼굴, 이름, 번호판 등을 모자이크, 흐림, 단색 상자로 가립니다.
  • 파비콘 만들기이미지 도구 · 이미지, 텍스트, 이모지로 ICO, PNG 아이콘, 웹 매니페스트까지 갖춘 파비콘 세트를 만듭니다.
  • PDF 병합PDF 도구 · 여러 PDF 파일을 원하는 순서대로 하나의 문서로 합칩니다. 파일마다 페이지 범위를 지정할 수도 있습니다.
  • PDF 분할PDF 도구 · 페이지를 새 PDF로 추출하거나, 문서를 페이지별, 범위별, 일정한 페이지 수별로 여러 파일로 나눕니다.
  • PDF 페이지 순서 변경PDF 도구 · 드래그 앤 드롭으로 PDF의 페이지 순서를 바꾸고, 필요 없는 페이지를 지운 뒤 결과를 저장합니다.

Base64 인코더·디코더

텍스트나 파일을 Base64(표준 또는 URL 안전)로 인코딩하고, Base64나 data: URL을 텍스트나 내려받을 수 있는 파일로 디코딩합니다.

브라우저에서 처리 – 데이터를 업로드하지 않습니다

도구를 불러오는 중…

Base64 인코더·디코더 소개

Base64는 임의의 바이트를 출력 가능한 문자 64개(A–Z, a–z, 0–9, +, /)로 적는 방식입니다. 그래서 JSON과 XML 문서, 이메일, HTTP 헤더, 환경 변수, HTML과 CSS의 data: URL처럼 텍스트만 다룰 수 있는 곳으로도 바이너리 데이터를 보낼 수 있습니다. 3바이트가 4자가 되므로 인코딩한 결과는 원본보다 약 3분의 1 커집니다.

이 도구는 텍스트(UTF-8로 인코딩)와 파일을 Base64로 바꾸고, 다시 원래대로 되돌립니다. Base64url로 알려진 URL 안전 방식, 선택형 패딩, MIME 방식의 줄바꿈을 지원하며 data: URL도 읽습니다. 디코딩할 때 읽을 수 있는 텍스트는 바로 보여 주고, 그 밖의 데이터는 가능한 한 내용에서 형식을 알아낸 뒤 파일로 제공합니다.

변환은 모두 브라우저 안에서 이루어집니다. 파일은 사용자의 기기에서 읽으며 아무것도 업로드하지 않습니다.

사용 방법

  1. "방향"에서 "인코딩"이나 "디코딩"을 고르세요.
  2. 인코딩하려면 "텍스트"를 고르고 "인코딩할 텍스트"에 입력하거나 붙여넣으세요. 또는 "파일"을 고르고 25 MB 이하의 파일을 선택하세요. 바로 쓸 수 있는 data: URL이 필요하면 "data: URL 접두사 붙이기"를 체크하세요.
  3. 필요하면 "URL 안전 문자(-와 _)", "패딩(=)", "76자마다 줄바꿈" 옵션을 조절하세요.
  4. 디코딩하려면 Base64나 완전한 data: URL을 상자에 붙여넣거나 "텍스트 파일 열기"를 쓰세요. 읽을 수 있는 UTF-8 텍스트는 "디코딩된 텍스트"에, 그 밖의 데이터는 크기, 형식, hex 미리보기와 함께 "디코딩된 파일"에 표시됩니다.
  5. "결과 복사"나 "텍스트 복사", ".txt 다운로드"나 "파일 다운로드"로 결과를 보관하세요. "서로 바꾸기"를 누르면 결과를 반대 방향으로 넘기고, "지우기"를 누르면 처음부터 다시 시작합니다.

기능

  • 텍스트와 파일: 텍스트를 UTF-8로 변환하므로 한글, 악센트가 붙은 글자, 이모지도 문제없습니다. 25 MB까지 모든 형식의 파일을 지원하며, 브라우저의 btoa 함수에서 생기는 크기 제한과 유니코드 문제가 없습니다.
  • 표준 Base64와 URL 안전 Base64: 두 문자 집합 중 하나로, = 패딩을 붙이거나 빼고 만들 수 있습니다. 디코더는 두 문자 집합과 패딩이 빠진 입력, 공백, 줄바꿈을 모두 받아들입니다.
  • 명확한 검사: 올바르지 않은 입력은 이유를 정확히 알려 줍니다. 어떤 문자가 몇 번째 위치에서 허용되지 않는지, 길이가 Base64로 성립할 수 없는지, 패딩이 잘못된 자리에 있는지 보여 줍니다.
  • 양방향 data: URL: 파일을 그 파일의 MIME 형식을 쓰는 data: URL로 바꾸거나, data: URL을 붙여넣어 그 안에 적힌 형식대로 디코딩할 수 있습니다.
  • 텍스트 또는 파일로 출력: 디코딩한 바이트가 올바른 UTF-8이면 텍스트로 보여 줍니다. 그 밖의 데이터는 다운로드할 수 있게 제공하며, PNG, JPEG, GIF, WebP, PDF, ZIP은 첫 바이트로 알아보고, 가능하면 이미지 미리보기와 처음 64바이트의 hex 덤프를 함께 보여 줍니다.

사용 예

Basic 인증 헤더 만들기

user:pa55word를 인코딩하면 dXNlcjpwYTU1d29yZA==가 되며, 이 값을 Authorization: Basic dXNlcjpwYTU1d29yZA== 헤더에 넣습니다. 헤더를 본 사람은 누구나 다시 디코딩할 수 있다는 점을 기억하세요.

JSON Web Token의 페이로드 읽기

JWT의 가운데 부분은 패딩 없는 Base64url입니다. eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSBMb3ZlbGFjZSJ9를 디코딩하면 {"sub":"1234567890","name":"Ada Lovelace"}가 나옵니다. 디코딩은 토큰의 서명을 검증하지 않습니다.

CSS에 작은 아이콘 넣기

"파일"을 고르고 작은 PNG를 선택한 뒤 "data: URL 접두사 붙이기"를 체크하세요. 결과는 data:image/png;base64,로 시작하며 background-image: url(…)이나 <img>의 src 속성에 바로 쓸 수 있습니다.

API가 돌려준 파일 저장하기

어떤 API는 문서를 JSON 안의 Base64 문자열로 돌려줍니다. 그 문자열을 디코딩 모드에 붙여넣으세요. PDF라면 도구가 application/pdf를 알아내고, "파일 다운로드"를 누르면 decoded.pdf로 저장됩니다.

제한 사항과 참고

  • 25 MB까지의 파일을 인코딩할 수 있고, 디코딩용으로 40 MB까지의 텍스트 파일을 열 수 있습니다. 아주 긴 결과는 상자에 미리보기로만 표시되지만, 복사와 다운로드에는 항상 전체 결과가 쓰입니다.
  • 내용으로 파일 형식을 알아내는 것은 PNG, JPEG, GIF, WebP, PDF, ZIP뿐입니다. 그 밖의 바이너리 데이터는 data: URL에 형식이 적혀 있지 않으면 .bin 파일로 저장됩니다.
  • 텍스트는 항상 UTF-8로 다룹니다. UTF-16이나 Windows-1252처럼 다른 인코딩으로 된 텍스트의 Base64는 텍스트로 보여 주지 않고 파일로 제공합니다.
  • 텍스트 상자에 입력하거나 붙여넣은 줄바꿈은 브라우저가 LF로 바꾸므로, Windows(CRLF) 줄바꿈이 있는 텍스트도 LF로 인코딩됩니다. 바이트가 정확히 같아야 한다면 파일 자체를 인코딩하세요.
  • 줄바꿈한 출력은 LF 줄바꿈을 씁니다. 엄격한 MIME 규격은 CRLF를 쓰지만, 이 도구를 포함한 디코더는 둘 다 받아들입니다.
  • Base64는 암호화가 아니라 인코딩입니다. 데이터를 보호하지 않으며 누구나 디코딩할 수 있습니다.

자주 묻는 질문

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

아닙니다. Base64는 바이트를 적는 방식만 바꿀 뿐이며 디코딩에 키가 필요하지 않습니다. 텍스트만 다루는 경로로 데이터를 보낼 때 쓰고, 비밀번호나 다른 비밀 정보를 숨기는 데는 절대 쓰지 마세요.

Base64는 왜 =나 ==로 끝나는 경우가 많나요?

Base64는 3바이트 단위로 처리합니다. 입력 길이가 3의 배수가 아니면 마지막 묶음에 = 기호를 한두 개 붙여 텍스트 길이를 4의 배수로 맞춥니다. JWT처럼 패딩을 빼는 형식도 많으며, 이 디코더는 두 형태를 모두 받아들입니다.

Base64와 Base64url은 무엇이 다른가요?

Base64url(RFC 4648, 5절)은 +를 -로, /를 _로 바꿔 URL과 파일 이름에 이스케이프 없이 쓸 수 있게 합니다. 이 두 문자와, 보통 패딩을 빼는 점을 빼면 인코딩 방식은 같습니다.

디코딩할 때 "길이가 올바르지 않습니다"라는 오류가 나는 이유는 무엇인가요?

패딩 없는 Base64 텍스트의 길이는 4n + 1자가 될 수 없습니다. 문자 하나에는 6비트만 담기므로 한 바이트를 채우지 못하기 때문입니다. 대개 복사하다가 텍스트가 잘렸거나 문자가 하나 더 들어갔다는 뜻입니다.

Base64 텍스트가 원래 파일보다 큰 이유는 무엇인가요?

3바이트를 4자로 적기 때문에 인코딩한 텍스트는 원본보다 약 33% 커집니다(줄바꿈을 켜면 줄바꿈 문자만큼 더 커집니다). 안전하게 출력할 수 있는 문자만 쓰는 대가입니다.

파일이나 텍스트가 업로드되나요?

아닙니다. 인코딩과 디코딩은 이 페이지의 JavaScript가 처리하며 파일은 기기 안에서 읽습니다. 서버로는 아무것도 전송되지 않습니다.

더 많은 무료 도구