UTILS.
100% in de browser
🕵️

Afbeelding-steganografietool

Verberg geheime tekst in een afbeelding met LSB-steganografie, of onthul een verborgen bericht. Draait 100% in je browser, er wordt niets geüpload.

Sleep of kies een afbeelding om tekst in te verbergen

Over deze tool

Deze tool verbergt een geheim tekstbericht in een gewone afbeelding en haalt het er later weer uit, met least-significant-bit (LSB) steganografie. Alles gebeurt lokaal in je browser op een HTML-canvas: de afbeelding en je bericht verlaten nooit je apparaat en er wordt niets naar een server geüpload.

LSB-steganografie werkt door het minst significante bit van elk kleurkanaal te overschrijven. De afbeelding wordt op een canvas getekend en de ruwe pixels worden uitgelezen; het bericht wordt omgezet naar UTF-8-bytes en die bits vervangen, bit voor bit, het laagste bit van de rode, groene en blauwe kanalen van opeenvolgende pixels (het alpha-/transparantiekanaal wordt overgeslagen om visuele artefacten te voorkomen). Alleen het laagste bit veranderen verschuift elk kanaal met hoogstens 1 van 255, dus het resultaat ziet er voor het oog identiek uit. Er wordt eerst een 32-bits big-endian lengteheader geschreven, zodat de decoder precies weet hoeveel berichtbytes volgen. Elke pixel draagt 3 bits, dus een afbeelding bevat ongeveer floor(breedte x hoogte x 3 / 8) bytes, minus de 4 headerbytes.

Om een bericht te verbergen kies je "Bericht verbergen", kies je een afbeelding, typ je je tekst en klik je op Coderen & downloaden om een PNG op te slaan. Om het terug te halen schakel je naar "Bericht onthullen" en open je een stego-PNG; de verborgen tekst wordt automatisch gedecodeerd. De uitvoer moet PNG zijn omdat die lossless is — een JPEG hercomprimeert de pixels en zou de fragiele minst significante bits wegvegen, wat het bericht vernietigt.

Veelgestelde vragen

Is dit veilig of versleuteld?
Nee. LSB-steganografie is obscuriteit, geen versleuteling — het verbergt dat er een bericht bestaat, maar beschermt de inhoud niet. Iedereen die een stego-afbeelding vermoedt en dezelfde methode gebruikt kan het lezen. Voor echte vertrouwelijkheid versleutel je je tekst eerst (bijvoorbeeld met een AES-tool) en verberg je daarna de cijfertekst.
Waarom exporteert het PNG en niet JPEG?
Het bericht leeft in de minst significante bits van de pixels, die alleen lossless zijn. PNG bewaart elk bit exact. JPEG is lossy en hercomprimeert de afbeelding, wat die lage bits verandert en de verborgen data vernietigt, dus deze tool slaat altijd PNG op.
Hoeveel tekst kan ik in één afbeelding verbergen?
Ongeveer floor(breedte x hoogte x 3 / 8) bytes, minus 4 bytes gereserveerd voor de lengteheader. Een afbeelding van 1000 x 1000 bevat ongeveer 375.000 bytes. De tool toont de exacte capaciteit wanneer je een afbeelding laadt en waarschuwt je als je bericht te groot is.
Werkt het met emoji en andere talen?
Ja. Het bericht wordt gecodeerd als UTF-8, dus emoji, accenten en niet-Latijnse schriften komen exact terug. Merk op dat multibyte-tekens meer van de capaciteit van de afbeelding gebruiken dan gewone ASCII.

Meer tools