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
Waar voor je geld: 5 soundbars met losse surroundspeakers
© ID.nl
Huis

Waar voor je geld: 5 soundbars met losse surroundspeakers

Bij ID.nl zijn we dol op kwaliteitsproducten waar je niet de hoofdprijs voor betaalt. Een paar keer per week speuren we binnen een bepaald thema naar zulke deals. Ben je op zoek naar een krachtige soundbar met losse achterspeakers voor echt surroundgeluid? Vandaag hebben we vijf interessante modellen voor je gespot.

Met een soundbar verbeter je het geluid van de gemiddelde televisie en met een model met aparte surround speakers breng je ook 5.1-surround in de woonkamer. Erg prettig is dat de meeste soundbars met surround speakers ook nog eens draadloos zijn, dus geen gedoe met snoeren door de woonkamer. Bekijk hier onze selectie van vijf soundbar-sets.

Samsung HW-Q930D

Met de Samsung HW-Q930D richt je tegen een relatief bescheiden bedrag een volwaardige thuisbioscoop in. Naast een riante soundbar van ruim een meter telt de productdoos een draadloze subwoofer en twee achterspeakers. Verschillende audiodrivers zijn naar voren, naar boven en zijwaarts gepositioneerd. Een voordeel, want dit 9.1.4-kanaals audiosysteem stuurt effecten vanuit allerlei richtingen naar je oren. Kijk je een film met een Dolby Atmos-audiospoor, dan hoor je zelfs bepaalde klanken boven je hoofd. Aansluiten is trouwens kinderspel, want de verschillende apparaten vereisen alleen netstroom. Je hoeft dus geen lange speakerkabels tussen de audiocomponenten te leggen.

Je verbindt een televisie via HDMI met deze soundbar. Wie een Samsung-tv met ondersteuning voor Q-Symphony gebruikt, is in het voordeel. In dat geval werken alle audiodrivers van de smart-tv en soundbar naadloos met elkaar samen. Het resultaat is een nóg voller geluid. De achterzijde bevat nog een tweede HDMI-poort en optische ingang. Hierop sluit je desgewenst een extra apparaat aan, zoals een spelcomputer of mediaspeler. Voor het streamen van muziek verbind je de HW-Q930D met wifi. Met behulp van AirPlay 2, Google Cast of Spotify Connect luister je binnen een mum van tijd naar je favoriete afspeellijst. Je kunt eventueel ook een smartphone of tablet rechtstreeks met bluetooth verbinden.

LG DS95TR

Met een lengte van maar liefst 1,25 meter is de LG DS95TR een echte blikvanger. Ideaal voor wie een grote soundbar met een forse beeldbuis wil combineren. Voeg daar de twee bijgesloten surroundspeakers en subwoofer aan toe en je luistert naar een kamervullend geluid. In tegenstelling tot traditionele home-cinemasets is de aanleg van luidsprekerkabels niet nodig. De audiocomponenten communiceren draadloos met elkaar. Gebruik de automatische kalibratiefunctie om de speakers zorgvuldig op elkaar af te stemmen. Hierdoor heb je geen last van volumeverschillen en vertragingen.

In totaal heeft dit audiosysteem vijftien actieve audiodrivers. Daarvan zijn er vijf naar boven gericht. Het verwerken van films en series met driedimensionaal Dolby Atmos-geluid is dus geen enkel probleem. Dankzij een riant totaalvermogen van 810 watt voorzie je een middelgrote tot grote kamer van helder tv-geluid. De achterzijde van de soundbar heeft twee HDMI-poorten en een optische ingang. Je kunt dus vrijwel elke televisie aansluiten. Voor het verwerken van muziekstreams verbind je de DS95TR met wifi of bluetooth. Prettig is hierbij de ondersteuning voor AirPlay 2, Google Cast en Spotify Connect. Lees hier enkele ervaringen van andere gebruikers.

LG DS60TR

Met dit betaalbare product van LG richt je een 5.1-kanaals audiosysteem in. De onlangs verschenen DS60TR bestaat uit een soundbar van 85 centimeter, een draadloze subwoofer en twee achterspeakers. Houd er rekening mee dat deze surroundspeakers onderling met een speakerkabel zijn verbonden. De communicatie met de soundbar is overigens wel draadloos. Je koppelt de DS60TR via HDMI of de optische ingang aan een televisie. Handig is dat je diverse instellingen van de soundbar op een geschikte LG-televisie kunt bedienen. Zo switch je in de zogeheten WOW-interface tussen verschillende geluidsmodi.

Met een totaalvermogen van 440 watt plaats je het audiosysteem in een kleine tot middelgrote kamer. Voor de weergave van surroundeffecten ondersteunt de DS60TR de veelgebruikte formaten Dolby Digital en DTS. In tegenstelling tot duurdere producten met Dolby Atmos-geluid hoor je dus geen geluid boven je hoofd. Verder stream je desgewenst muziek, radio en podcasts via een bluetoothverbinding. Koppel hiervoor een smartphone of tablet. Een interessant weetje is dat de boven- en onderkant van de soundbar zijn gemaakt van gerecycled plastic.

Lees ook: Dit is de ideale positie van je soundbar

LG DS70TR

De LG DS70TR zit met een lengte van 95 centimeter tussen de eerder besproken LG DS95TR en LG DS60TR in. Voor een soundbar met Dolby Atmos-ondersteuning valt de aanschafprijs mee. Een opwaartse driver stuurt bepaalde audiogolven naar boven, waardoor je een driedimensionaal geluid ervaart. Dankzij twee draadloze surroundspeakers (wel onderling met kabel verbonden) hoor je ook nog eens achter je effecten. De snoerloze subwoofer maakt jouw thuisbioscoop compleet. Een nuttige functie is dat de DS70TR met de speakers van een geschikte LG-televisie kan samenwerken. Hierdoor ontstaat er een grootser geluid.

Dit 5.1.1-kanaals audiosysteem levert een totaalvermogen van 500 watt. Voor een doorsnee (woon)kamer in een appartement of rijtjeshuis is dat ruimschoots voldoende. Behalve Dolby Atmos kan de DS70TR ook overweg met DTS:X, DTS en Dolby Atmos. Je hoort dus bij vrijwel alle streams van videodiensten écht surroundgeluid. De achterzijde heeft twee HDMI-poorten en een optische ingang. Naast de televisie kun je dus ook nog twee andere apparaten aansluiten, zoals een gameconsole en cd-speler. Tot slot laat je via bluetooth je favoriete afspeellijsten op de soundbar los. Gebruik hierbij de smartphone of tablet als afstandsbediening.

Denon DHT-S517

De Denon DHT-S517 is een 3.1.2-kanaals soundbar die wordt geleverd met een draadloze subwoofer. Dit systeem maakt gebruik van Dolby Atmos om een ruimtelijk geluid te creëren. In de soundbar zitten zeven speakers, waarvan er twee naar boven zijn gericht. Deze 'up-firing' speakers sturen het geluid naar het plafond, dat het vervolgens terugkaatst naar jouw zitplek. Dit zorgt voor een geluidseffect waarbij het lijkt alsof het geluid ook van boven komt. De set bevat geen losse achterspeakers, maar simuleert het surround-effect.

Met de Dialogue Enhancer-functie kun je de helderheid van stemmen in drie niveaus aanpassen, zodat gesprekken in films en series beter te volgen zijn. De soundbar heeft een HDMI-ingang voor het doorlussen van een extern apparaat en een HDMI eARC-uitgang voor de verbinding met je televisie. Daarnaast is er Bluetooth aanwezig om muziek draadloos te streamen en zijn er verschillende geluidsmodi beschikbaar, zoals Film, Muziek en Nachtmodus.

▼ Volgende artikel
CashbackXL: zo haal je het maximale uit je online aankopen!
© Mymemo - stock.adobe.com
Huis

CashbackXL: zo haal je het maximale uit je online aankopen!

Steeds meer consumenten maken gebruik van cashbackplatforms om geld terug te krijgen op hun online aankopen. CashbackXL is een van de bekendste Nederlandse aanbieders en werkt volgens een eenvoudig principe: wie via het platform naar een webshop gaat en daar iets koopt, krijgt achteraf een deel van het aankoopbedrag terug. In dit artikel lees je hoe dat precies werkt, welke voordelen het biedt en waar je op moet letten om optimaal te profiteren.

In dit artikel lees je onder meer:
  • Hoe CashbackXL werkt en waarom je geld terugkrijgt op je aankopen

  • Stap-voor-stap uitleg om cashback te activeren

  • Extra voordeel via waardebonnen met directe cashback

  • Uitleg over uitbetaling en Instant Payout

  • Wat te doen als je cashback niet wordt geregistreerd

  • De belangrijkste voor- en nadelen van CashbackXL

CashbackXL (of kortweg CBXL) is een van de bekendste cashbackplatforms in Nederland. Het concept is eenvoudig maar slim: je gaat via CashbackXL naar een webshop, doet daar een aankoop en ontvangt achteraf een deel van je aankoopbedrag terug. Dat geld komt uit de commissie die de webshop aan CashbackXL betaalt omdat jij via het platform binnenkwam. Met andere woorden: de winkel bedankt CBXL voor jouw aankoop en CBXL deelt die beloning met jou.

In de praktijk betekent dit dat elke online bestelling via het platform een kans is om geld te besparen, zonder kortingscodes te zoeken of ingewikkelde acties te volgen. Zolang je via de juiste link doorklikt en de regels volgt, verdien je automatisch aan je eigen aankopen.

Wil jij ook altijd de beste deals?

Schrijf je dan snel in via CashbackXL!

Stap voor stap: zo verdien je cashback via CBXL

Om te beginnen maak je gratis een account aan op CashbackXL.nl. Alleen geregistreerde en ingelogde gebruikers kunnen een cashback ontvangen. Zodra je bent ingelogd, kun je via de zoekbalk of de categorieën jouw favoriete webshop vinden. Denk aan bekende namen als Bol.com, Coolblue, HEMA of Zalando. Klik vervolgens op de knop Shop & ontvang cashback. Dat doorklikmoment is essentieel, want op dat moment plaatst CBXL een cookie waarmee de aankoop aan jouw account wordt gekoppeld.

Daarna winkel je precies zoals je dat gewend bent. Je plaatst producten in je winkelmandje, rekent af via de website van de winkel en rondt alles volledig online af. Belangrijk is dat je pas begint met shoppen nadat je via CBXL op de betreffende aanbieding hebt geklikt, en dat je geen kortingscodes gebruikt die niet op CBXL zelf vermeld staan. Zulke codes kunnen de cashback namelijk ongeldig maken.

Na je aankoop verschijnt de cashback vaak binnen tien minuten als 'in behandeling' in je account, maar het kan ook tot 24 uur duren. De definitieve goedkeuring volgt zodra de webshop jouw aankoop bevestigt. Let op: bij sommige winkels is dat al binnen een paar dagen geregeld, bij andere kan het enkele weken duren.

Hoe voorkom je dat je een cashback misloopt?

Een cashback werkt alleen als de tracking ongestoord verloopt. Daarom raadt CBXL aan om altijd alle cookies te accepteren, adblockers uit te schakelen en bij voorkeur de browser Chrome te gebruiken. Klik direct na het inloggen op de gewenste webshop en koop zonder omwegen, dus zonder tussendoor andere websites te bezoeken of vergelijkingssites te gebruiken.

Gebruik bij voorkeur je eigen wifi-netwerk; aankopen via een bedrijfsnetwerk of hotelverbinding kunnen soms niet goed geregistreerd worden. En tot slot: gebruik alleen kortingscodes die expliciet op CBXL vermeld staan. Andere codes kunnen ertoe leiden dat de webshop geen commissie uitkeert, waardoor je ook geen cashback ontvangt.

Extra voordeel met giftcards en directe cashback

Naast reguliere aankopen biedt CBXL een tweede manier om te besparen: waardebonnen met directe cashback. Dat werkt eenvoudig. Je logt in op je account, kiest een giftcard van bijvoorbeeld Bol.com, Wehkamp, Zalando, Intertoys of Douglas, en betaalt via iDeal. Binnen één minuut staat de code (en eventueel een pincode) in je account. De cashback wordt meteen goedgekeurd en aan je saldo toegevoegd.

De waardebonnen zijn minimaal twee jaar geldig, kunnen in delen worden besteed en zijn ook in fysieke winkels te gebruiken via de barcode in de CBXL-app. Daarmee kun je dus ook offline profiteren van cashback.

Een concreet voorbeeld: stel dat je voor 200 euro schoenen wilt kopen bij Zalando. In plaats van direct op Zalando te betalen, koop je via CBXL Zalando-waardebonnen ter waarde van 200 euro. Die bonnen ontvang je vrijwel direct, en zodra je ermee betaalt, ontvang je 12 euro cashback (6 procent) die direct op 'goedgekeurd' komt te staan. Zo krijg je direct voordeel zonder wachttijd.

Je saldo uitbetalen: van punten naar euro’s

Wanneer jouw cashback door de webshop is goedgekeurd, kun je het laten uitbetalen. Dat kan op verschillende manieren. De meeste gebruikers kiezen voor een gewone bankoverschrijving, die maandelijks rond de 25ste plaatsvindt (in december rond de 20ste van de maand). Er geldt geen minimum- of maximumbedrag en het geld staat meestal binnen één werkdag op je rekening.

Wie sneller over zijn saldo wil beschikken, kan gebruikmaken van de Instant Payout-optie. Dan staat het bedrag binnen 2 seconden op je rekening, maar geldt er wel een vergoeding van 2 procent van het uitbetalingsbedrag (met een minimum van 0,50 euro). Een derde optie is uitbetaling in giftcards, waarmee je minimaal 4 procent extra voordeel krijgt. Dat is vooral aantrekkelijk voor wie regelmatig bij dezelfde winkel koopt.

©Cashback XL

Wat te doen als je cashback niet wordt geregistreerd?

Soms verschijnt je cashback niet in je account. Dat kan gebeuren als de tracking is onderbroken of als cookies niet goed zijn opgeslagen. In dat geval kun je binnen drie weken na je aankoop een claim indienen via je account. CashbackXL beoordeelt de claim en stuurt deze indien nodig door naar de webshop. De verwerking duurt gemiddeld vier maanden, en niet elke claim wordt toegekend (volgens CBXL wordt ongeveer 60 procent van de claims goedgekeurd).

Om teleurstelling te voorkomen is het sowieso verstandig om van elke aankoop een screenshot van de bestelbevestiging te bewaren. Die kun je meesturen bij een eventuele claim.

De voor- en nadelen op een rij

Het grote voordeel van CashbackXL is dat het platform hoge cashback-percentages biedt, vaak hoger dan bij concurrenten als EuroClix. Het aantal aangesloten webshops is daarnaast indrukwekkend, en de combinatie met directe cashback op giftcards maakt het aanbod extra aantrekkelijk. De app en browser-extensie zijn gebruiksvriendelijk en zorgen ervoor dat je geen kans op een cashback mist.

Daar staat tegenover dat het systeem nauw luistert. Een kleine fout (een ad-blocker, een vergeten cookie of een niet-goedgekeurde kortingscode) kan ervoor zorgen dat je helemaal geen korting of cashback ontvangt. Daarnaast vraagt het soms geduld: sommige winkels doen er weken over om aankopen definitief goed te keuren. Houd daar dus rekening mee.

Slim omgaan met cashback: tips uit de praktijk

Wie structureel voordeel wil halen uit CashbackXL, doet er goed aan om de app of browser-extensie te installeren. Die herinnert je automatisch aan cashback-mogelijkheden als je een webshop bezoekt. Shop altijd via de directe link, sla bewijs van je bestelling op en gebruik giftcards alleen als je zeker weet dat je ze binnenkort gebruikt, want digitale bonnen kunnen niet worden geretourneerd.

Het voordeel van CBXL is dat je euro's verdient in plaats van punten, waardoor je precies weet wat je terugkrijgt. De Instant Payout is vooral handig voor wie snel over zijn geld wil beschikken, maar wie geen haast heeft, kan beter wachten op de gratis maandelijkse uitbetaling.

Nog even in het kort

CashbackXL is een volwassen en transparant platform dat het principe van cashback toegankelijk maakt voor iedereen. Het combineert gebruiksgemak met hoge percentages en directe beloning via giftcards. De regels zijn strikt, maar wie ze volgt, krijgt structureel geld terug op zijn aankopen.

Kort gezegd: wie online koopt via CashbackXL, laat geld liggen als hij geen cashback activeert. En in tijden van stijgende prijzen voelt dat extra goed: niet omdat je minder uitgeeft, maar omdat je slimmer uitgeeft!

Wil jij ook altijd de beste deals?

Schrijf je dan snel in via CashbackXL!