Privé QR-codegenerator: geen tracking, geen server, geen vervaldatum

Elke code op deze pagina wordt in je browser gemaakt door een ISO/IEC 18004-encoder. Je gegevens worden nergens naartoe gestuurd, dus niemand kan ze loggen, scans volgen of de code uitzetten.

Een privé QR-codegenerator codeert je gegevens in de browser en stuurt niets naar een server, dus niemand kan loggen wat je hebt gecodeerd, volgen wie de code scant of de code laten verlopen.

✓ Niets geüpload ✓ Geen scantracking ✓ Werkt offline ✓ Verloopt nooit
1

Vul de inhoud in

2

Ontwerp je QR-code

Ontwerpsjablonen:
📁 Logo uploaden PNG, JPG, SVG of WebP (max. 5 MB). Wordt 100% in je browser verwerkt.
Live voorbeeld
Versie —
Modules —
ECC —
Bytes —
Bekijk de gecodeerde gegevens https://example.com

Wat "100% client-side" in de praktijk betekent

Geen marketingclaim, maar een beschrijving van waar het werk gebeurt.

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.

Controleer het zelf in zestig seconden

Je hoeft ons niet op ons woord te geloven. Drie tests die elke browser kan uitvoeren.

1

Bekijk het netwerktabblad

Open de ontwikkelaarstools van je browser, kies het paneel Netwerk en maak het leeg. Typ nu hierboven een webadres, verander de kleuren, voeg een logo toe en download het bestand. De lijst blijft leeg: er wordt niets verstuurd terwijl je werkt.

2

Ga offline

Laad deze pagina en zet dan de vliegtuigmodus aan of trek de netwerkkabel eruit. De generator blijft werken, het voorbeeld blijft bijwerken en downloads worden nog steeds opgeslagen, omdat er niets meer op te halen valt.

3

Lees de broncode

De scripts worden ongeminificeerd geleverd. Zoek erin naar fetch of XMLHttpRequest en je vindt geen van beide in de generatorcode; de enige netwerkaanroep op de hele site is de optionele analytics-tag, en die zit achter je toestemming.

Waarom de code nooit verloopt

Verlopen is een eigenschap van omleidingsdiensten, niet van QR-codes.

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.

Wat we bewust niet bouwen

Drie functies die je elders wel vindt, en waarom ze hier met opzet ontbreken.

×

Dynamische, aanpasbare codes

Een geprinte code achteraf aanpassen vereist een omleiding die wij voor altijd zouden moeten hosten. Dat is een verkapt abonnement en één kwetsbaar punt. Moet je een bestemming wijzigen, print dan een nieuwe statische code; dat kost niets.

×

Scananalytics

Scans tellen betekent dat iedereen die een telefoon op je bord richt, eerst door ons wordt gelogd. Die gegevens hebben we liever niet in handen. Wil je bezoekersaantallen, voeg dan UTM-parameters aan het adres toe en lees ze af in je eigen analytics.

×

Bulkgeneratie en een API

Beide zouden een server vereisen die je gegevens ontvangt. De eerlijke afweging is dat deze site bedoeld is om codes één voor één te maken, zorgvuldig, voor drukwerk. Voor duizenden codes houdt een open-sourcebibliotheek op je eigen computer dezelfde privacy in stand.

De enige derde partij

Opt-in analytics, en wat het wel en niet kan zien.

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.

Veelgestelde vragen

Privacy, offline gebruik en licenties.

Nee. De waarden die je typt, worden alleen in het geheugen van de pagina bewaard zolang het tabblad open is, en worden uitsluitend gebruikt om het symbool te berekenen. Ze worden niet naar een server gestuurd, niet in de lokale opslag geschreven en niet in de analytics-tag opgenomen, ook niet als je die hebt toegestaan.
Ja, zodra de pagina geladen is. Alles wat de encoder nodig heeft, zit al in het tabblad, dus je kunt de verbinding verbreken en codes blijven maken en downloaden. Om de pagina opnieuw te laden heb je weer een verbinding nodig, tenzij je browser hem in de cache heeft.
Ja. De codes die je maakt zijn van jou en mag je gebruiken op verpakkingen, menukaarten, borden, visitekaartjes en overal elders, zonder bronvermelding, zonder watermerk en zonder licentiekosten. De QR Code-symbologie zelf is een open ISO-standaard; "QR Code" is een geregistreerd handelsmerk van DENSO WAVE INCORPORATED.
Hij implementeert ISO/IEC 18004 Model 2, versies 1 tot en met 40, met alle vier de foutcorrectieniveaus en de standaard maskerkeuze. De uitlezing onder het voorbeeld toont de versie, het aantal modules, het niveau en de grootte van de inhoud die de engine daadwerkelijk heeft geproduceerd, zodat je een symbool kunt controleren aan de hand van de tabellen in de specificatie.
Er is geen verschil; elke tool hier gebruikt dezelfde engine en dezelfde regels. Deze pagina bestaat om het privacymodel op één plek uit te leggen en aan te tonen. Wil je een tool die vooraf op een bepaald type is ingesteld, dan openen de pagina's voor wifi, vCard en vectordrukwerk meteen met het juiste formulier.