Datei hochladen
  1. base64hub
  2. Web- & Token-Tools
  3. zlib + Base64

Zlib- und Deflate-Kompression in Base64

Komprimieren Sie Text oder eine Datei mit zlib (RFC 1950) oder Raw Deflate (RFC 1951) und kopieren Sie das Base64. Wählen Sie die Hülle, die der empfangende Code erwartet, und „incorrect header check“ verschwindet.

Kostenlos ohne Anmeldung, ohne Limits Lokal kein Upload 3 Hüllen zlib, Raw Deflate und gzip aus einer Eingabe Aktualisiert 27.10.2026
Eingabe –Komprimiert –Ausgabe –Verhältnis –

Wird in Ihrem Browser verarbeitet. Diese Seite kann Ihre Daten nirgendwohin senden – woher wir das wissen

So komprimieren Sie mit zlib und kodieren als Base64

  1. Tippen oder fügen Sie den Text ein, oder legen Sie eine Datei ab.
  2. Format steht anfangs auf zlib (deflate). Wechseln Sie zu Raw Deflate, wenn der Empfänger den nackten Stream will, oder zu gzip.
  3. Aktivieren Sie bei Bedarf URL-sicher (- _) oder Umbruch bei 76.
  4. Ausgabe kopieren, oder laden Sie die Base64-.txt oder die binäre .zz- bzw. .deflate-Datei herunter.

Tauschen schickt die Ausgabe an die Seite Entpacken, um den Hin- und Rückweg zu bestätigen.

Derselbe Text in drei Hüllen

Hello, world! (13 Bytes), komprimiert mit der Standardstufe:

FormatBytesBase64
Raw Deflate1580jNycnXUSjPL8pJUQQA
zlib21eJzzSM3JyddRKM8vyklRBAAgXgSK
gzip33H4sIAAAAAAAAA/NIzcnJ11Eozy/KSVEEAObG5usNAAAA

Der Deflate-Stream besteht in allen dreien aus denselben 15 Bytes, und doch sieht das Base64 unterschiedlich aus, weil die Header mit 2 und 10 Bytes verschieben, wo jedes Byte in den 3-Byte-Gruppen landet. Der zlib-Header ist bei der Standardstufe 78 9C, deshalb beginnt zlib-Base64 mit eJ. Bei Stufe 9 ist er 78 DA, in Base64 eN.

Welcher Aufruf welches Format erzeugt

Die meisten „Deflate“-Fehler entstehen, weil beide Seiten dasselbe Wort für unterschiedliche Hüllen verwenden:

Sprachezlib (RFC 1950)Raw Deflate (RFC 1951)gzip
Pythonzlib.compress()zlib.compressobj(wbits=-15)gzip.compress()
Node.jszlib.deflateSync()zlib.deflateRawSync()zlib.gzipSync()
BrowserCompressionStream("deflate")CompressionStream("deflate-raw")CompressionStream("gzip")
PHPgzcompress()gzdeflate()gzencode()
Javanew Deflater()new Deflater(level, true)GZIPOutputStream
.NETZLibStream (.NET 6+)DeflateStreamGZipStream
Gocompress/zlibcompress/flatecompress/gzip

Achten Sie auf die Fallen: DeflateStream in .NET und compress/flate in Go sind Raw Deflate, während „deflate“ in Node und im Browser zlib ist. Ein C#-Dienst und ein Node-Client, die beide „Deflate verwenden“, verstehen sich nicht, solange nicht eine Seite etwas ändert.

Wo welche Hülle vorkommt

  • zlib: FlateDecode-Streams in PDFs, PNG-Bilddaten, Git-Objekte, viele Binärprotokolle und Spielstand-Formate.
  • Raw Deflate: das SAML-HTTP-Redirect-Binding (der SAML-Decoder beherrscht es), Einträge in ZIP-Dateien, WebSocket-permessage-deflate.
  • gzip: Dateien, HTTP, Logs. Die gzip-Seite behandelt es.

Zlib + Base64 im Code

import base64, zlib

packed = base64.b64encode(zlib.compress(b"Hello, world!")).decode()
# 'eJzzSM3JyddRKM8vyklRBAAgXgSK'
text = zlib.decompress(base64.b64decode(packed))
// Node.js: raw deflate for a SAML-style payload
const zlib = require("zlib");
const packed = zlib.deflateRawSync(Buffer.from("Hello, world!")).toString("base64");
// '80jNycnXUSjPL8pJUQQA'

Um solche Strings zurückzulesen, nutzen Sie den Base64-Decoder für gzip und zlib, der alle drei Hüllen erkennt. Mehr unter Python und Node.js.

Häufige Probleme

  • incorrect header check: zlib-Decoder, aber Raw- oder gzip-Daten. Passen Sie die Hülle an.
  • invalid stored block lengths oder invalid block type: Ein Raw-Deflate-Decoder bekam zlib-Daten; die beiden Header-Bytes werden als Deflate-Blöcke gelesen.
  • Das Ergebnis ist länger als die Eingabe: Kurze Strings lassen sich nicht komprimieren. Unter etwa 50–100 Bytes ist reines Base64 kürzer.
  • Die Ausgabe stimmt nicht Byte für Byte mit einem anderen Tool überein: Kompressionsstufe und Bibliothek verändern beide die Bytes, und jeder korrekte Dekompressor liefert aus beiden Varianten dasselbe Original.

Häufige Fragen

Was ist der Unterschied zwischen zlib und Deflate?

Deflate ist der Kompressionsalgorithmus. Raw Deflate ist der nackte komprimierte Stream; zlib legt einen 2-Byte-Header und eine 4-Byte-Adler-32-Prüfsumme darum; gzip ergänzt einen 10-Byte-Header und einen 8-Byte-Trailer mit CRC-32. Die komprimierten Daten in der Mitte sind identisch.

Was verursacht „incorrect header check“?

Der Dekompressor erwartete einen zlib-Header und bekam etwas anderes, meist Raw Deflate oder gzip. Verwenden Sie den passenden Aufruf (zlib.decompress(data, -15) in Python für Raw Deflate) oder kodieren Sie neu im Format, das der Empfänger erwartet.

Ist HTTP Content-Encoding: deflate Raw Deflate oder zlib?

Die HTTP-Spezifikation sagt zlib. Manche alten Server sendeten unter diesem Namen Raw Deflate, deshalb ist gzip für HTTP die sicherere Wahl.