ID.nl logo
Zo maak je van foto's gecodeerde berichten
© Reshift Digital
Huis

Zo maak je van foto's gecodeerde berichten

Coderen en decoderen spreekt altijd tot de verbeelding. Al in de oudheid verzon men manieren om boodschappen in het geheim te kunnen verzenden. Spiegelschrift, codeboeken, Enigma-machines, onzichtbare inkt, noem het maar op. In dit artikel gaan we daar een variant op bouwen, waarbij we slim gebruik maken van het RGB-mechanisme van digitale foto’s. Zo maak je van foto's gecodeerde berichten.

We sturen je direct naar www.visualstudio.microsoft.com/vs voor de zogeheten Community Edition van Visual Studio 2019. En daarna breng je een bezoekje aan de website van onze dochtersite Computer Idee, waar je van de pagina Downloads het bestand Steganography.zip downloadt. Dit bestand bevat het Steganography-project waarmee we hier aan de slag gaan; het voorzetje van dit project vind je op de website www.codeproject.com. Wil je meer weten over steganografie (= het verbergen van informatie in onschuldig ogende objecten, een vorm van cryptografie), dan is dít een mooie Wikipedia-pagina die je helemaal bijpraat.

Rgb-kleuren

We gaan dus informatie verbergen in onschuldig ogende objecten. En wat is er, om in computertermen te blijven, nóg onschuldiger dan een digitale foto? Als we over digitale foto’s praten, dan praten we over resolutie en kleur. Resolutie is het aantal pixels waaruit de digitale foto bestaat. Kleur kennen we in meerdere varianten, van zwart/wit naar grijs naar 16,7 miljoen kleuren, enzovoort. De meest gebruikte kleurvariant (in onder andere bmp, jpg en png) is rgb, met steeds een byte per kleurwaarde. Een byte heeft 256 als maximale waarde dus dat is 256 keer r(ood), 256 keer g(roen) en 256 keer b(lauw). En 256 x 256 x 256 = 16.777.216 dus dat is waar dat getal 16,7 miljoen vandaan komt.

Componenten en bits

Elke pixel van een digitale foto wordt neergezet door 3 bytes: 1 rood-byte, 1 groen-byte en 1 blauw-byte. Elke afzonderlijke byte kan een waarde tussen 0 en 255 bevatten. Dat komt omdat een byte gebruik maakt van het binaire talstelsel, waarbij we werken met nullen en enen. Daarbij bestaat 1 byte uit 8 bits. Die 8 bits kunnen afzonderlijk de waarde 0 of 1 bevatten. Als de bit op 0 staat, dan is de bijbehorende waarde ook 0. Als de bit op 1 staat, dan is de bijbehorende waarde afhankelijk van de bit-positie in de byte. De laagste (of eerste) bit is dan 1. De hoogste (of laatste) bit is dan 128. Kijk maar eens naar de onderstaande tabellen, dan zie je hoe dat in zijn werk gaat:

©PXimport

LSB en MSB

En zoals je kunt zien, hebben we weinig aan bit 1. De waarde is immers maximaal 1. Daarom wordt Bit 1 ook wel de LSB genoemd oftewel de Least Significant Bit; de bit die er het minst toe doet. Bit 8 daarentegen, kan – binnen een byte – de waarde 128 bevatten. Bit 8 is dus belangrijk en heet daarom de MSB (Most Siginificant Bit); inderdaad, de bit die er het meest toe doet! Met voor de niet-hoofdrekenaars nog even een link naar een handige online conversieservice.

Kleuren kijken

De bovenstaande byte-filosofieën nemen we mee als we daadwerkelijk naar kleuren gaan kijken. We doen dat om inzicht te krijgen in het effect van de getallen tussen 0 en 255. Daarbij gaan we uit van rgb-waarden en we zetten wat bekende standaardkleuren voor je op een rijtje:

©PXimport

De bovenstaande tabel vertelt sowieso ons al één ding: “Hoe meer bits op 1, hoe meer kleur.” En door de afzonderlijke rgb-waarden te veranderen ontstaan dan die verschillende 16,7 miljoen kleuren. En ook voor die theorie hebben we een leuke link.

Een 1 is geen 1

Waarmee we bij de essentie van deze workshop zijn aanbeland: “Het feit dat de eerste bit, de LSB, er eigenlijk niet toe doet.” Die eerste bit kan 0 of 1 zijn en dat blijft het ook. En in termen van kleurbelevenis moet je van goeden huize komen om het verschil tussen 255,0,0 en 254,0,0 te kunnen zien. Kortom, een 1 is geen 1. En dáár gaan we gebruik van maken! Dat wil zeggen, we gaan die LSB gebruiken om onze geheime boodschap letterlijk en volledig in het zicht te bewaren. Hij is er wel, maar je ziet het lekker niet…

©PXimport

WinForms

Nu terug naar het begin, terug naar Visual Studio 2019 en het zip-bestand dat je bij de website van Computer Idee hebt opgehaald. Pak dat bestand uit en start aansluitend Visual Studio 2019. Kies voor de optie Open a project or solution en ga op zoek naar de map waarin je de zip zojuist hebt uitgepakt. In die map zie je een SLN-bestand dat door Visual Studio 2019 kan worden geopend, waarna je ziet dat ons WinForms-project is geopend. Als je dat wilt, dan kun je meteen op de Start-knop drukken om daarmee het mini-programma Steganography te laten starten.

Steganography

Begin met een druk op de knop Open Afbeelding om een plaatje naar keuze in te lezen. In het tekstvak Geheime Boodschap kun je dan de te verstoppen boodschap intypen. Als dat is gebeurd, klik je op de knop Verstoppen om die ingetypte boodschap ‘in’ de afbeelding op te nemen. En je zult moeten toegeven: “Daar is helemaal niets van te zien!” Om te controleren of dat verstoppen is geslaagd, klik je op de knop Leeg en daarna op de knop Onthullen. Voilà! De volgende stap is dan het bewaren van het ‘nieuwe’ plaatje via de knop Bewaar Afbeelding, om het daarna via e-mail te versturen naar de beoogde ontvanger. Die beoogde ontvanger moet dan uiteraard ook een versie van Steganography hebben draaien, om je boodschap tevoorschijn te kunnen halen. Interessant, niet?

©PXimport

Programma-opties

Intussen is Steganography nog voorzien van enkele programma-opties. Een van die opties is Sleutel Voor Encryptie. Als je die gebruikt wordt de geheime boodschap nog eens extra versleuteld. Dat betekent wel dat je die sleutel, uiteraard apart van de bewerkte afbeelding, naar de ontvanger moet versturen. Een andere optie is Gebruik MSB. Weet je nog, de Most Siginificant Bit die binnen goed is voor de waarde 0 of 128. Welnu, als we de afbeelding niet via de LSB maar via de MSB coderen dan is wél direct zichtbaar dat er iets aan de hand is. Dit om je een idee te geven van het zwaarteverschil tussen de verschillende bits!

Stukje code bekijken

Tot slot willen we je nog even meenemen naar Visual Studio en wel om een stukje code te bekijken. Als je  Steganography hebt laten draaien, dan is het WinForms-project al geopend. Rechts in beeld vind je de zogeheten Solution Explorer en de C#-programmacode waar het om draait bevindt zich in het bestand SteganographyHelper.cs. Daarbij gaat het feitelijk om vier functies:

EncryptString. Dit zorgt ervoor dat de geheime tekst – indien nodig – wordt versleuteld.

DecryptString. Dit ontsleutelt een geheime tekst, iets wat alleen mogelijk is als de ontvanger over de juiste sleutel beschikt.

EmbedText. Hier wordt de al dan niet versleutelde tekst in de afbeelding opgenomen, waarbij gebruik wordt gemaakt van óf de LSB óf de MSB. Elk teken heeft 3 pixels oftwel 9 rgb-bits nodig.

ExtractText. De tekst wordt nu weer uit de afbeelding gehaald. Met als opties natuurlijk een extra sleutel en de keuze tussen LSB en MSB.

©PXimport

▼ Volgende artikel
Dit zijn de winnaars van Kieskeurig Best Reviewed van het Jaar 2025
Huis

Dit zijn de winnaars van Kieskeurig Best Reviewed van het Jaar 2025

Benieuwd wat afgelopen jaar de échte uitblinkers op het gebied van consumentenelektronica waren? Kieskeurig.nl reikt voor het eerst de Best Reviewed van het Jaar-awards uit. Deze 64 producten scoorden consistent de hoogste cijfers bij echte gebruikers. Bekijk hieronder de complete lijst met winnaars en ontdek welke producten de ultieme publieksprijs verdienen én de beste koop zijn voor jou.

Als je op zoek bent naar een nieuwe televisie of stofzuiger, wil je eigenlijk maar één ding weten: ga ik spijt van deze aankoop krijgen of niet? Al jaren helpen de maandelijkse Best Reviewed-labels op Kieskeurig.nl je om die keuze te maken: die predicaten zijn namelijk gebaseerd op de ervaringen van gebruikers die het product al in huis hebben.

Dit jaar doen we daar nog een schepje bovenop. We introduceren namelijk een gloednieuwe onderscheiding voor de absolute uitblinkers die niet slechts even, maar het hele jaar door favoriet waren: de Best Reviewed van het Jaar-award.

Het winnen van deze prijs is het bewijs dat een product een vaste waarde is gebleken waar consumenten het hele jaar (2025 in dit geval) blind op hebben kunnen bouwen. Het is daarmee de ultieme publieksprijs, want er komt geen vakjury aan te pas. De enige jury die telt, is de eindgebruiker die zijn ongezouten mening heeft achtergelaten op Kieskeurig.nl.

©AK | ID.nl

De winnaars

We hebben de balans over het afgelopen jaar opgemaakt en dat heeft geresulteerd in een prachtige lijst met winnaars. In totaal zijn er 64 producten in de prijzen gevallen, variërend van televisies en koelkasten tot de nieuwste gadgets. Stuk voor stuk zijn dit apparaten die de hoogste beoordelingen kregen en die de verwachtingen van de koper echt hebben waargemaakt. Ben je benieuwd welke producten zich de allereerste Best Reviewed van het Jaar mogen noemen en daarmee de veiligste keuze zijn voor jouw volgende aankoop? Bekijk hieronder het volledige overzicht van alle winnaars per categorie.

Audio & beeld

Autoradio: Kenwood DMX5020BTS

Draadloze speaker: JBL Grip

Koptelefoon: Sony WH-1000XM6

Televisie: LG OLED55C56LB

Computer, gaming & telefonie

Computermuis: Trust Fyda

Gamingaccessoires: Trust GXT 721 Ruya Pro

Laptop: Acer Aspire 14 AI A14-52M-56CK

Router: TP-Link Deco BE25

Smartphone: Google Pixel 10 Pro

Smartwatch: Huawei WATCH GT6

Software: NordVPN Plus Premium Vpn Services

Toetsenbord: Trust GXT 871 Zora

Keukenapparatuur klein

Blender: Philips HR2670

Eierkoker: Philips HD9137

Frituurpan: Tefal Easy Fry XL Surface FW4018

Grill: Tefal OptiGrill Elite XL GC760D

Handmixer: Philips HR3781

IJsmachine: Tefal Dolci IG602A

Keukenmachine: Kenwood Go KZM35GY

Pastamachine: Philips HR2665

Rijstkoker: Philips HD3080

Staafmixer: Philips HR2531

Tosti-ijzer: Philips HD2331/90

Wafelijzer: Philips HD2332


Huishouden & wonen

Bijverwarming: Philips CX3120

Elektrische deken: Beurer HK 48 Cosy

Kledingstomer: Tefal AeroSteam DT9814

Luchtbevochtiger: Philips HU5710

Luchtontvochtiger: Philips DE5305

Luchtreiniger: Philips  PureProtect Quiet 2200-serie AC2221

Robotstofzuiger: Rowenta X-Plorer Serie 135+ RR91D5

Stofzuiger: Rowenta X-Force Flex 15.60 RH99F1

Stoomgenerator: Tefal Pro Express Eco GV9E21

Strijkijzer: Tefal Freemove Power FV6675E0

Vloerreiniger: Rowenta X-Clean 10 GZ7035

Wasdroger: Hisense DH5S102BW

Wasmachine: LG F4WX809Y

Wastafelkraan: GROHE Start Wastafelkraan

Keukenapparatuur groot

Afzuigkap: ETNA AB791ZT

Fornuis: ETNA FIV560RVS

Inbouwkoelkast: Liebherr IRD 3900-22

Inbouwmagnetron: ETNA CM250TI

Inbouwoven: ETNA CM250MZ

Inbouwvaatwasser: ETNA VW544N

Inbouwvriezer: Liebherr IFND 3924-22

Koelkast: ETNA KCV282NRVS

Kookplaat: ETNA KIV354RVS

Magnetron: ETNA ECM153WIT

Vaatwasser: ETNA VWV144ZWA

Vriezer: Liebherr FNE 5207-22

Koffie & thee

Espressomachine: Krups Sensation Milk M50 EA9129

Koffiemolen: WMF Lumero Espresso

Melkopschuimer: Inventum MK350

Kookgerei

Keukenaccessoires: Philips Airfryer XXL HD9957/00 Bakset

Pan: Tefal Ingenio So Light 16-delig

Persoonlijke verzorging

Elektrische tandenborstel: Laifen Wave

Föhn: Remington D6077

Krul- en stijltang: Shark Glam 5-in-1 HD6051SEU

Massageapparaat: Beurer MG 89 CompactPower

Scheerapparaat: BaByliss X-Blade Super-X Metal Series OT991E

Smarthome

Beveiligingscamera: Trust IPCAM-2700

Slimme deurbel: TP-Link Tapo D210

Sport & vrije tijd

Loopband: Moovv SmartStep Pro v3 

Huisdieren

Dierbenodigdheden: POOPY NANO 2

▼ Volgende artikel
Waar voor je geld: 5 Amerikaanse koelkasten met energielabel C tot E
© ID.nl
Huis

Waar voor je geld: 5 Amerikaanse koelkasten met energielabel C tot E

Bij ID.nl zijn we gek op producten voor een mooie prijs of die iets extra's of bijzonders te bieden hebben. Daarom gaan we een paar keer per week voor jullie op zoek naar leuke deals. Dit keer: Amerikaanse koelkasten met een energielabel van C tot E, en voor een mooie prijs.

Samsung RS68A884CSL

Deze Samsung is een van de zuinigere keuzes in dit segment met een energielabel C. Met een totale inhoud van 635 liter heb je een enorme hoeveelheid ruimte tot je beschikking. De wanden zijn dankzij de SpaceMax-technologie dunner dan gebruikelijk, waardoor je aan de binnenkant meer liters overhoudt zonder dat de koelkast aan de buitenkant groter is. Het koelgedeelte (409 liter) en vriesgedeelte (226 liter) worden gekoeld door twee aparte systemen, waardoor geurtjes niet over en weer gaan en de luchtvochtigheid op peil blijft. Je sluit dit model aan op de waterleiding voor koud water en ijsblokjes, dus je hoeft geen reservoirs bij te vullen.

In het vriesgedeelte vind je hierdoor een ruime indeling met vier legplateaus en twee transparante lades onderin. Doordat de ijsmachine in de deur is verwerkt, lever je geen ruimte in op de legplanken zelf. Dit zorgt ervoor dat je de volledige diepte van de planken kunt benutten voor pizzadozen of grote verpakkingen. De vriezer wordt gekoeld door een apart systeem, waardoor er geen geuroverdracht plaatsvindt vanuit het koelgedeelte.

Totale inhoud:
635 liter (409L koel / 226L vries)
Afmetingen (hxbxd): 178 x 91,2 x 71,6 cm
Geluidsniveau: 36 dB
Dispenser: Ja (waterleiding)
No Frost: Ja
Energielabel: C

Energielabels: hoe zit het ook al weer?

Door die nieuwe indeling lijkt de energieklasse van veel koelkasten lager dan voorheen. Een model dat vroeger bijvoorbeeld als A+++ werd bestempeld, krijgt nu bijvoorbeeld een B- of C-label. Dat betekent niet dat het apparaat meer stroom verbruikt dan vroeger. De meetmethode en de eisen achter het label zijn simpelweg aangescherpt en kunnen beter worden vergeleken met modernere apparaten.Begin 2024 zijn de regels opnieuw aangepast.

Sinds maart van dat jaar mogen fabrikanten geen nieuwe koelkasten en vriezers met energielabel F of G meer introduceren. Vanaf de zomer van 2024 geldt dat verbod ook voor de verkoop in winkels. Met deze maatregelen wil de Europese Unie fabrikanten aanzetten om energiezuinigere koel- en vriesapparatuur te ontwikkelen. De hier besproken Amerikaanse koelkasten hebben een energielabel variërend van C tot E.

LG GSLV70PZTD

Met energielabel D doet deze LG het netjes qua verbruik. Het is een klassiek side-by-side model waarbij het vriesvak aan de linkerkant zit en het koelvak rechts. De totale capaciteit is 635 liter, verdeeld over 416 liter koelen en 219 liter vriezen. Een handige eigenschap is de speciale koeling in de deur, waardoor producten die je in de deurvakken zet sneller koud worden en beter op temperatuur blijven. Ook dit model vereist een vaste wateraansluiting voor de dispenser aan de voorzijde. De Inverter Linear Compressor zorgt ervoor dat de temperatuur constant blijft en het geluidsniveau beperkt blijft tot 35 decibel.

De indeling van deze LG is gericht op overzicht en gemak. Aan de linkerkant bevindt zich het vriesgedeelte, dat is uitgerust met vier glazen legplateaus en twee vrieslades voor losse producten. Daarnaast heb je in de deur van de vriezer nog twee extra opbergvakken, handig voor kleinere items die je snel wilt kunnen pakken. De Inverter Linear Compressor zorgt voor een constante temperatuur, wat ijsvorming op de producten tegengaat. Voor het ijs en koude water sluit je dit apparaat aan op een vaste wateraansluiting, waarbij het UVnano-systeem de uitgang van de dispenser automatisch reinigt.

Totale inhoud:
635 liter (416L koel / 219L vries)
Afmetingen (hxbxd): 179 x 91,3 x 73,5 cm
Geluidsniveau: 35 dB
Dispenser: Ja (waterleiding)
No Frost: Ja
Energielabel: D

Haier HSR3918ENPG

Als je geen behoefte hebt aan een water- of ijsdispenser in de deur, is deze Haier een interessante optie. Doordat de dispenser ontbreekt, heb je aan de binnenkant van de vriesdeur meer bruikbare ruimte. De totale inhoud is met 528 liter iets compacter dan de modellen van Samsung en LG, maar voor de meeste gezinnen nog steeds ruim voldoende. De vriezer heeft een inhoud van 191 liter en de koelkast 337 liter. De Multi Air Flow-techniek zorgt ervoor dat de koude lucht gelijkmatig door de hele koelkast wordt verspreid. Met energielabel E valt hij in de middenmoot wat betreft zuinigheid voor moderne Amerikaanse koelkasten.

Omdat deze Haier geen water- of ijsdispenser heeft, is de binnenkant van de vriesdeur volledig beschikbaar voor opslag. Je vindt hier drie ruime deurvakken waar je flessen of potjes in kwijt kunt. Het vriescompartiment zelf bestaat uit vijf niveaus met legplateaus en twee lades aan de onderzijde. Doordat de dispenser ontbreekt, heb je over de gehele breedte van het vriesvak evenveel diepte tot je beschikking. De Multi Air Flow-techniek verspreidt de koude lucht gelijkmatig, zodat het op elk plateau even koud is. Deze koelkast heeft een E-label.

Totale inhoud:
528 liter (337L koel / 191L vries)
Afmetingen (hxbxd): 177,5 x 90,8 x 64,7 cm
Geluidsniveau: 38 dB
Dispenser: Nee
No Frost: Ja
Energielabel: E

LG GSXV90MCDE

Dit model onderscheidt zich direct door het glazen paneel in de rechterdeur. Als je hier twee keer op klopt, wordt het glas transparant en kun je zien wat er in het voorste compartiment staat zonder de deur te openen. Dit voorkomt dat je koude lucht verliest. De koelkast heeft een totale inhoud van 635 liter en beschikt over een dispenser voor water, ijsblokjes en crushed ice. Hiervoor is een vaste wateraansluiting nodig. In de dispenser zit een UV-lampje dat de uitgang van het water automatisch reinigt. Qua energieverbruik valt dit model in klasse E.

Dit model biedt in het vriesgedeelte een bijzondere extra: de Craft Ice-maker. Naast gewone ijsblokjes en crushed ice maakt dit systeem langzaam smeltende ijsballen. De ijsmachine is in de deur geïntegreerd, waardoor je in het vriesvak zelf meer plankruimte overhoudt. Je beschikt over vier legplateaus en twee transparante lades. De metalen afwerking aan de achterwand (Metal Fresh) helpt om de kou vast te houden en geeft het interieur een strakke uitstraling. Uiteraard is ook dit model volledig No Frost, dus handmatig ontdooien is niet nodig.

Totale inhoud:
635 liter (416L koel / 219L vries)
Afmetingen (hxbxd): 179 x 91,3 x 73,5 cm
Geluidsniveau: 36 dB
Dispenser: Ja (waterleiding) + Craft Ice
No Frost: Ja
Energielabel: E

Hisense RS694N4TFE

Zoek je de luxe van koud water en ijsblokjes maar heb je geen waterleiding in de buurt van je koelkast? Deze Hisense lost dat op met een ingebouwd waterreservoir van 4,5 liter dat je handmatig bijvult. Het model heeft een strakke afwerking en biedt in totaal 562 liter inhoud, waarvan 371 liter voor de koeling en 191 liter voor de vriezer. Met energielabel E is het een prima optie gezien de grootte van dit model. De No-Frost technologie zorgt er bovendien voor dat je het vriesgedeelte nooit handmatig hoeft te ontdooien, wat ook weer gunstig is voor het energieverbruik op de lange termijn.

De vriezer van deze Hisense bevindt zich aan de linkerzijde en heeft een nettocapaciteit van 191 liter. De indeling bestaat uit vier legplateaus en twee lades, aangevuld met drie deurvakken. Omdat dit model een ingebouwd watertankje in de koelkastdeur heeft in plaats van een vaste wateraansluiting, ben je flexibeler in waar je het apparaat in de keuken plaatst. De vriescapaciteit is groot genoeg om 11 kilo per 24 uur in te vriezen en bij stroomuitval blijven je producten tot 6 uur bevroren.

Totale inhoud:
562 liter (371L koel / 191L vries)
Afmetingen (hxbxd): 178,6 x 91 x 68,9 cm
Geluidsniveau: 42 dB
Dispenser: Ja (waterreservoir 4,5L)
No Frost: Ja
Energielabel: E