ImageSteg · Daten in einem Bild oder einer Audiodatei verstecken

Eine Browser-Portierung von steghide 0.5.1 mit beiden Verfahren: Pixel/LSB für BMP und PNG sowie DCT-Koeffizienten für JPEG, ergänzt um PCM-WAV- und MP3-Audioträger. Verstecken Sie eine Datei oder Nachricht und lesen Sie sie mit der Passphrase wieder aus.

100 % lokal

Ihre Datei und Ihr Geheimnis verlassen dieses Gerät nicht. Decodierung, Einbettung, Verschlüsselung und Extraktion erfolgen in diesem Browsertab. Es wird niemals etwas auf einen Server hochgeladen; dort kann daher auch nichts abfließen.

1 · Trägerbild oder -audio

Bild oder Audiodatei ablegen JPEG, PNG, WebP, GIF, BMP, PCM WAV oder MP3 · lokal decodiert, niemals hochgeladen

Größere Träger bieten mehr Platz: Bilder etwa ein Byte pro acht Pixel, PCM-WAV ein Byte pro sechzehn Samples und MP3 den ungenutzten Platz in den Audioframes.

2 · Zu versteckende Daten

Keine Datei ausgewählt

3 · Passphrase & Optionen

Drei einfache Schritte

So verstecken Sie eine Datei in einem Bild oder einer Audiodatei

Ohne Installation und Upload: Bild, WAV oder MP3 wählen, Geheimnis hinzufügen und Ergebnis speichern.

1

Trägerbild oder Audiodatei wählen

Wählen Sie das Bild, die WAV- oder MP3-Datei, die die Daten tragen soll, ziehen Sie sie hinein oder fügen Sie sie ein. Größere Dateien bieten mehr Platz; detailreiche Fotos oder Musik verbergen Änderungen am besten.

2

Geheimnis und Passphrase hinzufügen

Fügen Sie eine beliebige Datei hinzu oder schreiben Sie eine Nachricht und wählen Sie eine Passphrase. Diese bestimmt, wo die Daten verteilt werden, und verschlüsselt sie optional.

3

Herunterladen und teilen

Speichern Sie das Ergebnis für steghide-Kompatibilität als BMP oder für eine kleinere Datei als PNG. Wer Bild und Passphrase besitzt, kann die Daten auslesen.

Die steghide-Algorithmen mit Audioträgern in Ihrem Browser

Graph-Matching für Pixel, DCT-Koeffizienten und Audiosamples

ImageSteg ist eine TypeScript-Portierung von steghide 0.5.1 und umfasst beide Verfahren: Pixel/LSB für BMP und PNG sowie DCT für JPEG. Zusätzlich trägt es Daten auf dieselbe Weise in PCM-WAV-Audio und im ungenutzten Ende von MP3-Frames. Keines dieser Verfahren durchläuft die Datei einfach der Reihe nach.

Graphbasierte Einbettung

Samples werden zu Knoten gruppiert. Ein Matching mit minimalem Gewicht bestimmt die Änderungen, sodass pro verstecktem Wert nur etwa ein Sample verändert wird.

Echte JPEG-DCT-Steganografie

Ein integrierter JPEG-Entropie-Codec liest die quantisierten DCT-Koeffizienten, versteckt Daten in ihrer Parität und codiert sie erneut – an derselben Stelle im Ablauf, an der libjpeg in steghide anhält. Baseline- und progressive Dateien werden unterstützt.

Passphrasengesteuerte Verteilung

Eine Permutation mit MD5-basiertem Startwert verteilt die Daten über das gesamte Bild. Die versteckten Nutzdaten liegen daher nicht in vorhersehbarer Reihenfolge vor.

Komprimierung und Prüfsumme

zlib verkleinert die Nutzdaten vor der Einbettung. Eine optionale CRC32-Prüfsumme zeigt sofort, ob das ausgelesene Ergebnis zuverlässig ist.

Optionale AES-256-Verschlüsselung

Rijndael im CBC-Modus mit derselben Schlüsselableitung wie libmcrypt hält die Nutzdaten vertraulich, selbst wenn jemand ein Bild verdächtig findet.

Was Sie erwarten können

Kapazität, Geschwindigkeit und Kompatibilität

Praktische Grenzen beim Verstecken von Daten in Bildpixeln.

BMP · PNGPixel-/LSB-Verfahren
JPEGDCT-Koeffizientenverfahren
0.2 %typischer Anteil geänderter Samples
0 UploadsAlles bleibt in Ihrem Browser

Kompatibilität: Bitlayout, Sample-Permutation und Rijndael-/CBC-Verschlüsselung entsprechen steghide 0.5.1. BMP- und JPEG-Ausgaben lassen sich daher auslesen mit steghide extract -sf image.bmp -p passphrase oder -sf image.jpg; vom steghide-Befehlszeilenwerkzeug erzeugte Dateien lassen sich hier lesen. Das Ausgabeformat entspricht immer dem Träger: Ein JPEG-Träger ergibt ein JPEG, da die Nutzdaten in Koeffizienten liegen, die nur JPEG transportieren kann. Für Pixelträger wird neben BMP auch PNG angeboten; die steghide-CLI liest kein PNG.

Das JPEG-Verfahren im Detail

Die JPEG-Unterstützung von steghide ruft in libjpeg folgende Funktion auf: jpeg_read_coefficients(). Sie hält die Decodierung direkt nach der Huffman-Decodierung an, vor Dequantisierung und IDCT. Übrig bleiben die rohen quantisierten DCT-Koeffizienten. Browser stellen dafür keine API bereit. Deshalb enthält diese Seite einen eigenen JPEG-Entropie-Codec statt des nativen Decoders. Er unterstützt Baseline- und progressive Dateien, einschließlich ihrer sukzessiven Verfeinerungsscans.

Derselbe Algorithmus für PNG

Der Einbettungsalgorithmus kennt kein Dateiformat, sondern arbeitet nur auf den decodierten Pixeldaten. Das BMP-/LSB-Verfahren von steghide lässt sich daher unverändert auf PNG übertragen. Vier Details sind in der Praxis wichtig:

Fragen und Antworten

Häufige Fragen zu ImageSteg

Ist ImageSteg kostenlos?

Ja. Das Verstecken und Auslesen von Daten ist kostenlos, ohne Registrierung, Wasserzeichen oder künstliche Dateigrößenbegrenzung.

Werden mein Bild oder meine geheime Datei hochgeladen?

Nein. Decodierung, Einbettung, Komprimierung und Verschlüsselung laufen lokal in Ihrem Browser mit JavaScript und WebCrypto. Es wird nichts an den 73hi-Server gesendet.

Welche Bildformate werden unterstützt?

Jedes vom Browser decodierbare Bild kann als Pixelträger dienen. Baseline- und progressive JPEG-Dateien nutzen das DCT-Verfahren von steghide. Das Ausgabeformat folgt dem Träger: JPEG hinein, JPEG heraus; ein Pixelträger ergibt ein BMP und eine PNG-Kopie. Das steghide-Befehlszeilenwerkzeug liest BMP- und JPEG-Ausgaben, aber kein PNG.

Wie versteckt der JPEG-Modus Daten?

In den quantisierten DCT-Koeffizienten, genau wie das steghide-Befehlszeilenwerkzeug. Die Seite enthält einen JPEG-Entropie-Codec, der den Scan bis zu den Koeffizienten decodiert, ihre Parität ändert und sie erneut codiert.

Kann ich ein progressives JPEG verwenden?

Ja. Progressive Dateien werden mit ihrer vollständigen Scanfolge – Spektralauswahl und sukzessiver Verfeinerung – decodiert und auf dieselbe Weise zurückgeschrieben. Das Ergebnis bleibt ein progressives JPEG mit den ursprünglichen Koeffizienten.

Was ist mit arithmetisch codierten JPEGs?

Sie werden zum Lesen unterstützt. Dateien mit QM-Codierung (binär arithmetisch) statt Huffman – SOF9 für sequentiell, SOF10 für progressiv – werden mit demselben arithmetischen Decoder wie in libjpeg decodiert. Die Koeffizienten sind daher identisch. Das Ergebnis wird wie bei steghide mit Huffman-Codierung geschrieben.

Wie viele Daten kann ich verstecken?

Etwa ein Byte Nutzdaten pro acht Pixel, abzüglich Header, gespeichertem Dateinamen und optionalem Verschlüsselungsaufwand. Das Werkzeug zeigt die nutzbare Kapazität nach der Bildauswahl an.

Kann das steghide-Befehlszeilenwerkzeug das Ergebnis lesen?

Ja, wenn Sie BMP herunterladen. Bitlayout, passphrasenbasierte Sample-Permutation und Rijndael-/CBC-Verschlüsselung entsprechen steghide 0.5.1.

Warum schlägt das Auslesen nach einer Bildbearbeitung fehl?

Die Nutzdaten liegen in einzelnen Pixelwerten. Erneute Komprimierung, Größenänderung, Filter oder Umwandlung in ein verlustbehaftetes Format wie JPEG zerstören sie. Bewahren Sie das ursprüngliche BMP oder eine verlustfreie PNG-Kopie auf.

Kann ich zwei Geheimnisse im selben Bild verstecken?

Nicht durch zweimaliges Einbetten in dieselbe Datei. Der zweite Durchlauf wählt eigene zufällige Positionen im gesamten Träger und überschreibt Teile der ersten Nutzdaten. Da die Daten vor der Verschlüsselung komprimiert werden, machen bereits wenige gekippte Bits die gesamte Nachricht unlesbar. Sie geht vollständig verloren, nicht nur teilweise. Das ursprüngliche steghide-Befehlszeilenwerkzeug verhält sich genauso. Auch dieselbe Passphrase hilft nicht: Sie schreibt dieselben Positionen von Anfang an neu, sodass nur die neueste Nachricht erhalten bleibt. Für echte Ebenen verschachteln Sie Dateien: Verstecken Sie das erste Geheimnis in einem kleinen Bild, laden Sie das Ergebnis herunter und verstecken Sie diese gesamte Datei mit einer zweiten Passphrase in einem größeren Bild. Jede Ebene bleibt bytegenau erhalten, da sie als geschützte Nutzdaten statt als veränderte Pixel transportiert wird.

Zerstört das Öffnen eines Bildes bereits vorhandene versteckte Daten?

Nein. Beim Laden werden nur die Bytes gelesen: JPEG-Träger werden direkt bis zu den quantisierten DCT-Koeffizienten decodiert, ohne inverse Transformation oder erneute Quantisierung. Pixelträger werden verlustfrei decodiert. Die versteckten Daten bleiben daher unverändert. Ein JPEG kann nach dem Speichern eine leicht andere Dateigröße haben, weil die Entropiecodierung neu geschrieben wird; die Nutzdaten beeinflusst das nicht. Sie können eine von anderen vorbereitete Datei gefahrlos öffnen und auslesen.

Kann ImageSteg beim Schutz meines Urheberrechts helfen?

Ja. Betten Sie Ihren Urheberrechtshinweis oder Eigentumsnachweis direkt in das Foto ein. Die Daten liegen in den Pixeln oder JPEG-Koeffizienten und bleiben bei normaler Betrachtung unsichtbar. Sie können das Bild daher öffentlich teilen, ohne dass die Markierung auffällt. Bei unerlaubter Weiterverwendung befindet sich die versteckte Markierung weiterhin in der Datei. Wenn Sie dasselbe Bild zur Dokumentation der Verletzung auf einer Drittplattform veröffentlichen, trägt auch diese Kopie Ihren Nachweis und liefert Belege für eine Entfernung oder einen Anspruch.

Kann ich eine Nachricht verstecken, die ich mich persönlich nicht auszusprechen traue?

Natürlich. Verstecken Sie eine Nachricht wie „Ich liebe dich“ oder andere schwer auszusprechende Worte in einem gewöhnlichen Alltagsfoto und verwenden Sie den Geburtstag der empfangenden Person als Passphrase. Senden Sie ihr das Foto und bitten Sie sie, es in ImageSteg oder unter 73hi.com/image-steg.html zu öffnen. Nur wer die Passphrase kennt, kann die Worte lesen. So können Sie sich ausdrücken, ohne sie laut aussprechen zu müssen.