ImageSteg · Gegevens verbergen in een afbeelding of audiobestand

Een browserport van steghide 0.5.1 met beide methoden: pixel/LSB voor BMP en PNG en DCT-coëfficiënten voor JPEG, plus PCM WAV- en MP3-audiodragers. Verberg een bestand of bericht en haal het weer terug met de wachtwoordzin.

100% lokaal

Je bestand en geheim verlaten dit apparaat nooit. Decoderen, inbedden, versleutelen en extraheren gebeuren in dit browsertabblad. Niets wordt naar een server geüpload, dus daar kan niets uitlekken.

1 · Afbeelding of audio als drager

Sleep een afbeelding of audiobestand JPEG, PNG, WebP, GIF, BMP, PCM WAV of MP3 · lokaal gedecodeerd, nooit geüpload

Grotere dragers bieden meer ruimte: afbeeldingen ongeveer één byte per acht pixels, PCM WAV één byte per zestien samples en MP3 de ongebruikte ruimte in de audioframes.

2 · Te verbergen gegevens

Geen bestand gekozen

3 · Wachtwoordzin & opties

Drie eenvoudige stappen

Een bestand in een afbeelding of audiobestand verbergen

Geen installatie of upload: kies een afbeelding, WAV of MP3, voeg je geheim toe en sla het resultaat op.

1

Dragerafbeelding of audiobestand kiezen

Selecteer, sleep of plak de afbeelding, WAV of MP3 die de gegevens zal dragen. Grotere bestanden bieden meer ruimte; drukke foto's of muziek verbergen wijzigingen het beste.

2

Geheim en wachtwoordzin toevoegen

Voeg een bestand toe of typ een bericht en kies een wachtwoordzin. Deze bepaalt waar de gegevens worden verspreid en kan ze ook versleutelen.

3

Downloaden en delen

Sla op als BMP voor steghide-compatibiliteit of als PNG voor een kleiner bestand. Iedereen met de afbeelding en wachtwoordzin kan de gegevens onthullen.

Steghides algoritmen plus audiodragers, in je browser

Graafmatching op pixels, DCT-coëfficiënten en audiosamples

ImageSteg is een TypeScript-port van steghide 0.5.1 met beide takken: pixel/LSB voor BMP en PNG en DCT voor JPEG. Daarnaast draagt het op dezelfde manier gegevens in PCM WAV en in de ongebruikte staart van MP3-frames. Geen van deze methoden doorloopt simpelweg het bestand op volgorde.

Inbedden met grafen

Samples worden in knopen gegroepeerd. Een matching met minimaal gewicht bepaalt wat verandert, zodat ongeveer één sample per verborgen waarde wordt aangepast.

Echte JPEG-DCT-steganografie

Een ingebouwde JPEG-entropiecodec leest de gekwantiseerde DCT-coëfficiënten, verbergt gegevens in hun pariteit en codeert ze opnieuw, precies waar steghides libjpeg stopt. Zowel baseline- als progressive-bestanden werken.

Verspreiding op basis van wachtwoordzin

Een permutatie met MD5 als seed verspreidt de gegevens over de hele afbeelding, zodat ze niet in een voorspelbare volgorde staan.

Compressie en checksum

zlib verkleint de payload vóór inbedding en een optionele CRC32-checksum laat direct zien of de extractie betrouwbaar is.

Optionele AES-256-versleuteling

Rijndael in CBC-modus met dezelfde sleutelafleiding als libmcrypt houdt de payload vertrouwelijk, zelfs als iemand de afbeelding verdacht vindt.

Wat je kunt verwachten

Capaciteit, snelheid en compatibiliteit

Praktische grenzen van gegevens verbergen in afbeeldingspixels.

BMP · PNGpixel-/LSB-tak
JPEGDCT-coëfficiëntentak
0.2 %typisch aandeel aangepaste samples
0 uploadsalles blijft in je browser

Compatibiliteit: de bitindeling, samplepermutatie en Rijndael/CBC-versleuteling volgen steghide 0.5.1. BMP- en JPEG-uitvoer kan dus worden gelezen met steghide extract -sf image.bmp -p passphrase of -sf image.jpg, en bestanden van de steghide-opdrachtregeltool kunnen hier worden gelezen. Het uitvoerformaat volgt altijd de drager: JPEG levert JPEG, omdat de payload in coëfficiënten zit die alleen JPEG kan dragen. Voor pixeldragers is naast BMP ook PNG beschikbaar; de steghide-CLI leest geen PNG.

De JPEG-tak in detail

Steghides JPEG-ondersteuning roept deze libjpeg-functie aan: jpeg_read_coefficients(), die het decoderen direct na Huffman-decoding stopt, vóór dekwantisatie en IDCT. Over blijven de ruwe gekwantiseerde DCT-coëfficiënten. Browsers bieden daar geen API voor, dus deze pagina heeft een eigen JPEG-entropiecodec in plaats van de ingebouwde decoder te gebruiken. Deze ondersteunt baseline en progressive, inclusief verfijningsscans met opeenvolgende benadering.

Hetzelfde algoritme toepassen op PNG

De inbedder ziet geen bestandsformaat, alleen de gedecodeerde pixelarray. Steghides BMP/LSB-methode werkt daarom ongewijzigd op PNG. Vier details zijn in de praktijk belangrijk:

Vragen en antwoorden

Veelgestelde vragen over ImageSteg

Is ImageSteg gratis?

Ja. Verbergen en onthullen is gratis, zonder registratie, watermerk of kunstmatige bestandsgroottelimiet.

Wordt mijn afbeelding of geheime bestand geüpload?

Nee. Decoderen, inbedden, comprimeren en versleutelen gebeurt lokaal in je browser met JavaScript en WebCrypto. Niets wordt naar de 73hi-server gestuurd.

Welke afbeeldingsformaten worden ondersteund?

Elke afbeelding die je browser kan decoderen kan een pixeldrager zijn. Baseline- en progressive-JPEG gebruiken steghides DCT-tak. Het uitvoerformaat volgt de drager: JPEG in, JPEG uit; een pixeldrager geeft BMP plus een PNG-kopie. De steghide-opdrachtregeltool leest BMP en JPEG, maar geen PNG.

Hoe verbergt de JPEG-modus gegevens?

In de gekwantiseerde DCT-coëfficiënten, precies zoals de steghide-opdrachtregeltool. De pagina bevat een JPEG-entropiecodec die tot de coëfficiënten decodeert, hun pariteit wijzigt en opnieuw codeert.

Kan ik een progressive-JPEG gebruiken?

Ja. Progressive-bestanden worden via hun volledige scanreeks gedecodeerd — spectrale selectie en verfijning met opeenvolgende benadering — en op dezelfde manier teruggeschreven. Het resultaat blijft een progressive-JPEG met de oorspronkelijke coëfficiënten.

Hoe zit het met rekenkundig gecodeerde JPEG's?

Lezen wordt ondersteund. Bestanden met QM-codering in plaats van Huffman — SOF9 voor sequentieel, SOF10 voor progressive — gebruiken dezelfde rekenkundige decoder als libjpeg, zodat de coëfficiënten identiek zijn. Het resultaat wordt met Huffman geschreven, net als bij steghide.

Hoeveel gegevens kan ik verbergen?

Ongeveer één byte payload per acht pixels, minus ruimte voor de header, bestandsnaam en eventuele versleutelingsopslag. De tool toont de bruikbare capaciteit zodra je een afbeelding kiest.

Kan de steghide-opdrachtregeltool het resultaat lezen?

Ja, als je BMP downloadt. De bitindeling, samplepermutatie op basis van de wachtwoordzin en Rijndael/CBC-versleuteling volgen steghide 0.5.1.

Waarom mislukt extractie nadat ik de afbeelding bewerk?

De payload zit in afzonderlijke pixelwaarden. Opnieuw comprimeren, schalen, filteren of naar een verliesformaat zoals JPEG omzetten vernietigt hem. Bewaar de oorspronkelijke BMP of een verliesvrije PNG-kopie.

Kan ik twee geheimen in dezelfde afbeelding verbergen?

Niet door tweemaal in één bestand in te bedden. De tweede ronde kiest eigen willekeurige posities over de hele drager en overschrijft een deel van de eerste payload. Omdat gegevens vóór versleuteling worden gecomprimeerd, maken enkele veranderde bits het hele bericht onleesbaar: je verliest het volledig, niet gedeeltelijk. De oorspronkelijke steghide-opdrachtregeltool werkt hetzelfde. Dezelfde wachtwoordzin hergebruiken helpt niet: dan worden dezelfde posities vanaf het begin overschreven en blijft alleen het nieuwste bericht over. Nest voor echte lagen bestanden: verberg het eerste geheim in een kleine afbeelding, download die en verberg vervolgens dat hele bestand in een grotere afbeelding met een tweede wachtwoordzin. Elke laag blijft byte voor byte intact doordat ze als beschermde gegevens wordt vervoerd, niet als gewijzigde pixels.

Vernietigt het openen van een afbeelding met verborgen gegevens die gegevens?

Nee. Laden leest alleen de bytes: JPEG-dragers gaan direct naar de gekwantiseerde DCT-coëfficiënten zonder inverse transformatie of herkwantisatie, en pixeldragers worden verliesvrij gedecodeerd. De verborgen gegevens blijven dus intact. Een JPEG kan iets anders van grootte worden door herschreven entropiecodering, maar dat verandert de payload niet. Je kunt veilig een bestand van iemand anders openen en de inhoud onthullen.

Kan ImageSteg mijn auteursrecht helpen beschermen?

Ja. Voeg je auteursrechtvermelding of eigendomsbewijs rechtstreeks aan de foto toe. De gegevens zitten in de pixels of JPEG-coëfficiënten en zijn bij normaal bekijken onzichtbaar, zodat je de afbeelding openbaar kunt delen zonder dat iemand het merkt. Bij ongeoorloofd hergebruik blijft het verborgen kenmerk in het bestand. Als je dezelfde afbeelding op een extern platform publiceert om de inbreuk vast te leggen, draagt ook die kopie je bewijs, als onderbouwing voor een verwijderverzoek of claim.

Kan ik een bericht verbergen dat ik niet durf te zeggen?

Zeker. Verberg bijvoorbeeld "Ik hou van je", of iets anders dat lastig uit te spreken is, in een gewone dagelijkse foto. Gebruik de verjaardag van de ontvanger als wachtwoordzin. Stuur de foto en vraag diegene hem in ImageSteg te openen, of via 73hi.com/image-steg.html. Alleen iemand met de wachtwoordzin kan de woorden onthullen, zodat je je kunt uiten zonder het hardop te hoeven zeggen.