파일 업로드
  1. base64hub
  2. 웹·토큰 도구
  3. Gzip Base64 디코더

Base64 Gzip 디코딩 (Zlib, Deflate 포함)

H4sI나 eJ로 시작하는 Base64 문자열을 붙여넣거나 .gz 파일을 놓으세요. 디코더가 gzip, zlib, raw deflate 중 무엇인지 판단해 압축을 푼 텍스트나 파일을 보여 줍니다.

무료 가입 없음, 제한 없음 로컬 업로드 없음 자동 gzip, zlib, raw deflate 감지 업데이트 2026. 10. 27.
입력 –압축됨 –출력 –압축률 –

브라우저에서 처리됩니다. 이 페이지는 데이터를 어디로도 보낼 수 없습니다 – 확인 방법

gzip Base64 문자열을 디코딩하는 방법

  1. 입력란에 Base64를 붙여넣거나 .gz, .zz, .deflate 파일을 놓으세요. 공백과 줄 바꿈은 무시됩니다.
  2. 형식은 자동 감지로 두세요. 상태 표시줄에 “gzip 감지됨"처럼 찾은 형식이 나타납니다.
  3. 텍스트 결과는 출력 창에 표시되고, JSON은 보기 좋게 정렬됩니다. 바이너리 결과는 파일 형식을 감지하고 다운로드 버튼을 보여 줍니다.
  4. gzip 입력이면 보낸 쪽이 저장해 둔 경우 원래 파일 이름과 수정 시각도 함께 표시됩니다.

gzip, zlib, deflate 구별하기

세 가지 모두 같은 DEFLATE 압축을 쓰고 감싸는 형식만 다르며, 그 차이는 Base64의 첫 몇 글자에 드러납니다.

시작 문자형식주요 출처
H4sIgzip (1F 8B 08)gzip, GZIPOutputStream, HTTP 본문, CloudWatch Logs
eJzlib, 기본 레벨 (78 9C)zlib.compress(), PHP gzcompress(), PDF 스트림
eNo–eNrzlib, 최고 압축 (78 DA)레벨 7–9
eAE–eAH, eF4–eF7zlib, 가장 빠름 및 낮은 레벨 (78 01, 78 5E)레벨 1–5
고정 접두사 없음raw deflateSAML Redirect 바인딩, PHP gzdeflate(), ZIP 항목
SDRzSU두 번 Base64 인코딩된 gzipHelm 릴리스 Secret

raw deflate에는 시그니처가 없으므로 자동 감지는 gzip과 zlib가 실패한 뒤에 이를 시도합니다. Brotli도 시그니처가 없어 가장 마지막에, 브라우저가 지원할 때만 시도합니다.

실제 페이로드 예

AWS CloudWatch Logs 구독 이벤트는 {"awslogs": {"data": "H4sI…"}} 형태로 Lambda에 전달됩니다. data 값을 붙여넣으면 logGroup, logStream, logEvents가 담긴 JSON을 읽을 수 있습니다.

Helm 3 릴리스 Secret에는 gzip으로 압축한 JSON의 Base64가 들어 있고, Kubernetes가 이를 한 번 더 Base64로 인코딩합니다. 셸에서는 다음과 같습니다.

kubectl get secret sh.helm.release.v1.myapp.v3 -o jsonpath='{.data.release}' \
  | base64 --decode | base64 --decode | gunzip | jq -r .manifest

여기서는 Kubernetes Secret 디코더나 Base64 디코더로 바깥 층을 디코딩한 뒤, 나온 H4sI… 결과를 이 페이지에 붙여넣으세요.

SAML Redirect 메시지는 raw deflate입니다. 여기서도 디코딩되지만, SAML 디코더는 URL 디코딩까지 하고 XML 요약도 보여 줍니다.

Python과 Node.js에서 디코딩하기

import base64, zlib

raw = base64.b64decode(s)
text = zlib.decompress(raw, 47).decode()   # 47 = 32 + 15: accept gzip or zlib
const zlib = require("zlib");
const text = zlib.unzipSync(Buffer.from(s, "base64")).toString();   // gzip or zlib

raw deflate라면 Python에서는 zlib.decompress(raw, -15), Node에서는 zlib.inflateRawSync()를 쓰세요. Python에서 Base64와 Node.js에서 Base64도 참고하세요.

오류와 제한

  • “올바른 Base64이지만 gzip, zlib, raw deflate 데이터가 아닙니다.” 처음부터 압축되지 않은 문자열입니다. Base64 디코더를 쓰거나, 바이너리라면 Base64를 파일로를 사용하세요.
  • “올바른 gzip 데이터가 아니거나 잘렸습니다.” 문자열 일부가 빠졌습니다. 로그 한 줄 길이 제한 때문에 잘리는 경우가 많으니 원본에서 다시 복사하세요.
  • “압축 스트림 뒤의 추가 바이트는 무시했습니다.” 스트림이 끝난 뒤에 무언가가 덧붙어 있습니다. 그 앞의 데이터는 유지됩니다.
  • “압축 해제된 데이터가 256.0 MB보다 커서 중단했습니다(zip 폭탄 가능성).” 압축 폭탄을 막기 위해 출력 크기에 상한을 두었습니다. 그보다 큰 데이터는 로컬에서 gunzip을 사용하세요.
  • 멀티 멤버 gzip 파일(gzip 스트림 여러 개를 이어 붙인 파일)은 지원하지 않습니다.

자주 묻는 질문

Base64 문자열 앞의 H4sI는 무슨 뜻인가요?

1F 8B 08, 즉 gzip 시그니처와 deflate 방식 바이트를 Base64로 나타낸 것입니다. H4sI로 시작하는 문자열은 gzip 데이터이므로, Base64로 디코딩한 다음 바이트를 gunzip하면 됩니다.

명령줄에서 Base64 gzip을 디코딩하려면 어떻게 하나요?

Linux와 macOS에서는 echo 'H4sI…' | base64 --decode | gunzip을 사용하세요. zlib 데이터(eJ…)는 gunzip이 헤더를 거부하므로, Base64 단계 다음에 python3 -c 'import sys,zlib; sys.stdout.buffer.write(zlib.decompress(sys.stdin.buffer.read()))'를 쓰세요.

Base64 디코딩 결과가 바이너리로 나오는 이유는 무엇인가요?

데이터를 압축한 뒤에 인코딩했기 때문에 일반 Base64 디코더는 압축된 바이트를 그대로 돌려줍니다. 이 페이지에 문자열을 붙여넣으면 디코딩과 압축 해제가 한 번에 이루어집니다.

.zip이나 .tar.gz 파일도 열 수 있나요?

.tar.gz는 압축을 풀면 .tar 아카이브가 되며, 이를 다운로드할 수 있습니다. ZIP 아카이브는 다른 컨테이너 형식이므로 Base64를 ZIP으로에서 목록을 보고 저장하세요.