De meeste online QR-generatoren sturen je tekst naar hun server, bouwen daar de afbeelding en sturen die terug. Sommige bewaren een kopie, en de generatoren die dynamische codes verkopen, leiden elke scan via hun eigen domein om hem te kunnen tellen. Deze pagina werkt precies andersom. De HTML, het stylesheet en de scripts zijn gewone statische bestanden. Zodra die binnen zijn, draait de encoder die je tekst in een symbool omzet volledig binnen het tabblad.
De encoder is een zelfstandige implementatie van ISO/IEC 18004, de standaard die de QR Code-symbologie definieert. Hij voert de segmentatie, de Reed-Solomon-foutcorrectie, het maskeren en de versiekeuze uit in JavaScript en tekent het resultaat op een canvas-element. Druk je op downloaden, dan zet de browser dat canvas om in een PNG-, JPG- of WebP-bestand, of schrijft hij een SVG-document, en slaat hij het op je apparaat op. Bij geen van die stappen wordt een verzoek verstuurd.
Een logo wordt op dezelfde manier behandeld. Het bestand dat je kiest, wordt gelezen met de eigen bestandslezer van de browser, op het canvas getekend, en verlaat je computer nooit. Hetzelfde geldt voor een wifiwachtwoord, een telefoonnummer of een volledige contactkaart: wat je ook typt, het blijft in het geheugen van de pagina tot je het tabblad sluit, en dan is het weg. De alles-in-één-generator en elke andere tool op deze site gebruiken precies deze engine.
Een QR-code is een afbeelding van gegevens. Als die gegevens zelf zijn wat je wilt, een webadres, een netwerkwachtwoord, een contactkaart, dan is de afbeelding in zichzelf compleet en leest een telefoon hem zonder iemand om toestemming te vragen. Dat is een statische code, en dat is wat deze site maakt. Hij kan niet verlopen, omdat er nergens in de keten een klok zit: geen account dat afloopt, geen server die uitgaat, geen abonnement dat verlengd moet worden.
Een dynamische code is een afbeelding van een korte link die eigendom is van een dienst. Die link leidt om naar je echte bestemming, wat de code aanpasbaar en telbaar maakt, en het is ook de reden dat zulke codes stoppen met werken als een proefperiode afloopt of een bedrijf ermee ophoudt. Onze gids over statisch vs. dynamisch loopt de afwegingen in detail door, en het korte artikel Verlopen QR-codes? beantwoordt de vraag rechtstreeks. De enige manier waarop een code van deze pagina stopt met werken, is als de bestemming die je hebt gecodeerd verandert, en daar heb jij de controle over.
Deze site kan Google Analytics laden om paginabezoeken te tellen, maar pas nadat je in de toestemmingsbanner op Analytics toestaan hebt gedrukt, en op deze pagina nooit voordat je hebt geantwoord. Weiger je, of stuurt je browser een Global Privacy Control-signaal, dan wordt de tag nooit geladen en wordt er geen cookie geplaatst. Je kunt je keuze op elk moment wijzigen via de link Privacykeuzes onderaan elke pagina.
Ook als je het toestaat, ziet de tag welke pagina's zijn geopend, niet wat erin is getypt. De generator geeft je inhoud nooit aan de tag door. De volledige beschrijving van wat er wordt opgeslagen, hoe lang, en hoe je je toestemming intrekt, staat in ons privacybeleid, en de volledige lijst met cookies staat op de pagina met het cookiebeleid.