파일 ↔ Base64 변환 도구 (data URI 지원, 양방향 변환)

이미지·PDF 등 어떤 파일이든 Base64 문자열이나 data URI로 변환하거나, 반대로 Base64 문자열·data URI를 파일로 복원해 다운로드할 수 있는 무료 도구입니다. 모든 변환은 브라우저 안에서 처리되며 파일은 서버로 전송되지 않습니다.

사용 팁

  • 파일 → Base64 모드에서는 이미지·PDF·오디오 등 파일 종류에 관계없이 업로드할 수 있으며, data URI 형식과 일반 Base64 문자열을 모두 복사할 수 있습니다.
  • Base64 → 파일 모드에서는 data:로 시작하는 완전한 data URI를 붙여넣으면 MIME 타입이 자동으로 감지됩니다. 일반 Base64 문자열만 있는 경우 MIME 타입을 직접 선택하세요.
  • 모든 변환 처리는 브라우저 안의 JavaScript에서 완결되며, 업로드한 파일이나 Base64 문자열이 서버로 전송되는 일은 전혀 없습니다. 민감한 파일도 안심하고 사용할 수 있습니다.
  • CSS나 HTML에 작은 아이콘 이미지를 삽입하고 싶다면 data URI 형식의 출력을 그대로 background-image: url(...)<img> 태그의 src에 붙여넣어 사용할 수 있습니다.
  • Base64 인코딩으로 인해 원본 파일보다 약 33% 크기가 커지므로, 수십 MB 이상의 큰 파일을 변환하면 브라우저 동작이 느려질 수 있습니다.

자주 묻는 질문

Base64는 이미지·오디오·실행 파일 등 어떤 형식의 바이너리 데이터든 A~Z, a~z, 0~9, +, / 이렇게 64가지 출력 가능한 ASCII 문자만으로 표현하는 인코딩 방식입니다. 암호화가 아니라, 임의의 바이트를 안전하고 출력 가능한 텍스트로 표현하기 위한 변환 방식일 뿐입니다.

data URI는 data:image/png;base64,iVBOR...처럼 파일 내용을 Base64로 인코딩한 문자열 형태로 URL 안에 직접 담는 형식입니다. MIME 타입 정보도 함께 포함되어 있어 <img> 태그의 src 속성이나 CSS의 background-image에 그대로 지정해 이미지를 표시할 수 있습니다.

아니요, 전송되지 않습니다. 이 도구의 변환 처리(FileReader와 Blob을 사용한 인코딩·디코딩)는 모두 사용 중인 브라우저 안의 JavaScript에서 완결되며, 파일 내용이나 Base64 문자열이 서버로 전송되는 일은 전혀 없습니다.

네, 가능합니다. data:로 시작하는 완전한 data URI 형식이 아닌 일반 Base64 문자열을 붙여넣으면 MIME 타입 선택란이 표시되므로, 원본 파일 형식(이미지·PDF·텍스트 등)을 직접 선택한 뒤 다운로드하세요.

Base64는 8비트 단위의 바이너리 데이터를 6비트 단위의 문자로 다시 묶기 때문에, 인코딩된 데이터 양은 원본의 약 4/3배, 즉 약 33% 증가합니다. 이는 Base64 인코딩 방식 자체에서 피할 수 없는 특성입니다.
ツールくん

여담 ― Base64가 파일 크기를 33%나 키우는 이유

Base64 인코딩이 등장한 배경에는 이메일·JSON·URL 등 많은 통신 경로가 "출력 가능한 ASCII 문자만 안전하게 다룰 수 있다"는 제약이 있습니다. 이미지나 실행 파일 같은 임의의 바이너리 데이터를 그대로 보내면 제어 문자가 섞여 손상될 위험이 있기 때문에, A~Z, a~z, 0~9, +, / 이렇게 64가지 출력 가능한 문자만으로 바이너리를 표현하는 Base64 방식이 고안되었습니다.

Base64는 3바이트(24비트)의 바이너리 데이터를 6비트씩 4개로 나누어 4개의 Base64 문자로 변환합니다. 8비트 단위의 바이너리를 6비트 단위의 문자로 다시 채워 넣기 때문에, 원본 데이터보다 약 4/3배, 즉 약 33% 커지는 트레이드오프가 발생합니다. 텍스트로 안전하게 전달할 수 있는 대가로 크기 증가는 피할 수 없습니다.

이 특성을 역으로 활용한 사례가 HTML·CSS 안에 작은 이미지를 data:image/png;base64,... 형태로 그대로 삽입하는 data URI입니다. 추가 HTTP 요청 없이 아이콘 같은 작은 이미지를 표시할 수 있어 페이지 로딩 속도를 높이는 방법으로 널리 쓰입니다. 다만 약 33%의 크기 증가와 브라우저 캐시를 활용할 수 없다는 단점이 있어, 큰 이미지 파일을 삽입하는 데는 적합하지 않습니다.