Cum funcționează

Codurile QR: cum stochează și transmit informația

Cum funcționează un cod QR: pătratele de reper, versiunile, corecția erorilor care îl face lizibil chiar pătat și riscul codurilor false lipite pe stradă.

De Redacția LumeaTehnologiei11 min de citit
Figurine de muncitori care repară un cod QR alb-negru, cu un modul desprins

Un cod QR stochează informația ca pe o grilă de pătrățele albe și negre, numite module, fiecare reprezentând un bit. Spre deosebire de codul de bare clasic, care se citește pe o singură direcție, codul QR se citește pe două dimensiuni, așa că pe aceeași suprafață încape de sute de ori mai multă informație: o adresă web, datele unei rețele Wi-Fi, un bilet de tren sau detaliile unei plăți.

Numele vine din englezescul Quick Response, răspuns rapid. Codul a fost inventat în Japonia, în 1994, pentru urmărirea pieselor auto pe liniile de producție, unde trebuia citit repede, din orice unghi, chiar murdar. Aceleași calități l-au făcut potrivit pentru camerele telefoanelor. Mai jos vezi din ce este alcătuit un cod QR, cum devine textul pătrățele, de ce funcționează chiar și pătat și cum te ferești de codurile false.

Ce este un cod QR

Un cod QR este un cod de bare bidimensional standardizat internațional prin ISO/IEC 18004, ceea ce înseamnă că orice cititor conform standardului poate decoda orice cod corect generat, indiferent de cine l-a creat. Inventatorul a renunțat la a-și impune drepturile de brevet asupra formatului, iar asta a contribuit decisiv la răspândirea lui.

CaracteristicăCod de bare clasicCod QR
Dimensiuni de citireuna (orizontală)două
Capacitate tipică8–20 de cifrepână la câteva mii de caractere
Corecția erorilordoar o cifră de controlrefacerea a 7–30% din date
Orientarea la citireaproximativ perpendiculară pe bareorice unghi
Ce conține de obiceiun cod de produstext, adrese web, date structurate

Ce e important de înțeles de la început: codul QR este doar un suport. El nu „face” nimic, nu rulează programe și nu instalează nimic. Conține text, iar telefonul decide ce să facă cu acel text: să deschidă o pagină, să adauge un contact sau să se conecteze la o rețea.

Anatomia unui cod QR

Pe lângă modulele care conțin datele propriu-zise, un cod QR are câteva zone cu rol fix, care ajută camera să-l găsească, să-l îndrepte și să-l citească. Dacă te uiți atent la orice cod, le vei recunoaște.

ElementUnde se aflăRolul lui
Modelele de reper (finder)trei pătrate mari, în colțuridetectarea codului și a orientării lui
Modelele de alinierepătrate mici, spre colțul fără repercorectarea deformărilor la coduri mari
Liniile de sincronizareșiruri alternante alb-negru între reperestabilirea mărimii unui modul
Informația de formatlângă modelele de repernivelul de corecție și masca folosită
Informația de versiunela codurile mari, lângă reperedimensiunea grilei
Zona liniștitămarginea albă din jursepararea codului de fundal
Modulele de daterestul suprafețeidatele și corecția erorilor

De ce trei pătrate în colțuri

Modelele de reper au o structură specială: un pătrat negru, înconjurat de un inel alb, înconjurat de un inel negru. Pe orice linie care le traversează prin centru, lățimile apar în proporția 1:1:3:1:1. Această proporție rămâne aceeași indiferent de distanță și de unghi, așa că algoritmul o găsește rapid în imagine. Faptul că lipsesc din al patrulea colț îi spune cititorului cum este rotit codul.

Masca

Datele codificate pot produce întâmplător zone mari de aceeași culoare sau modele care seamănă cu pătratele de reper și ar încurca cititorul. De aceea, generatorul aplică peste date una dintre cele opt măști standard, care inversează modulele după un model regulat, și o alege pe cea care dă rezultatul cel mai echilibrat. Masca folosită este notată în informația de format, ca să poată fi anulată la citire.

Cum se transformă textul în pătrățele

Codificarea are loc în câțiva pași bine definiți: generatorul alege un mod de codificare, transformă caracterele în biți, adaugă corecția erorilor și așază rezultatul pe grilă într-un traseu în zigzag.

Modurile de codificare

Standardul oferă mai multe moduri, pentru că textul cu cifre poate fi împachetat mult mai eficient decât textul oarecare:

  1. Numeric: doar cifrele 0–9, trei cifre în 10 biți.
  2. Alfanumeric: cifre, majuscule și câteva semne, două caractere în 11 biți.
  3. Octet: orice date, câte 8 biți pe octet; aici intră adresele web și textul cu diacritice în UTF-8.
  4. Kanji: caractere japoneze, într-o formă compactă.

Un generator bun poate combina modurile în același cod, de exemplu un segment numeric lung urmat de unul de tip octet, ca să folosească cât mai puțini biți.

Versiunile și capacitatea

Codurile QR vin în 40 de versiuni. Versiunea 1 are 21 × 21 de module, iar fiecare versiune următoare adaugă 4 module pe latură, până la 177 × 177 la versiunea 40. Cel mai mare cod, cu corecția minimă, poate stoca 7.089 de cifre, 4.296 de caractere alfanumerice sau 2.953 de octeți. În practică, codurile pe care le scanezi zilnic sunt mult mai mici, pentru că o grilă densă devine greu de citit de la distanță.

Sfat: O adresă web scurtă produce un cod mai rar, cu module mai mari, care se citește mai ușor de la distanță și în lumină slabă. Dacă generezi un cod pentru un afiș, scurtează adresa cât poți, de exemplu folosind o pagină cu nume scurt pe propriul site.

Corecția erorilor: de ce merge și când e pătat

Un cod QR poate fi citit corect chiar dacă o parte din el este murdară, ruptă sau acoperită, datorită codurilor Reed-Solomon, un tip de cod corector de erori folosit și pe CD-uri, DVD-uri și în comunicațiile prin satelit. Generatorul adaugă la date octeți suplimentari calculați matematic din ele, iar cititorul poate reface din aceștia octeții lipsă sau greșiți.

Nivel de corecțieCât din cod poate fi refăcut, aproximativCând îl alegi
L (low)7%coduri afișate pe ecran, în condiții curate
M (medium)15%utilizare generală, valoarea cea mai des întâlnită
Q (quartile)25%coduri tipărite în medii industriale sau exterioare
H (high)30%coduri cu un logo în mijloc sau expuse deteriorării

Prețul corecției este spațiul: cu cât nivelul este mai ridicat, cu atât rămân mai puține module pentru date, iar codul trebuie să fie mai mare pentru același conținut. Corecția explică și de ce pot exista coduri cu o imagine mică în centru: imaginea „distruge” o parte din module, dar nivelul H le reface.

Pentru a reduce efectul unei zgârieturi sau al unei pete care acoperă o zonă compactă, biții fiecărui bloc de date sunt întrețesuți pe suprafața codului. O pată afectează astfel câte puțin din mai multe blocuri, iar fiecare bloc rămâne recuperabil.

Cod QR mare din pătrățele negre, așezat de figurine miniaturale de muncitori

Cum citește camera un cod QR

Citirea unui cod QR durează o fracțiune de secundă, dar implică o succesiune de operații de prelucrare a imaginii, făcute direct de procesorul telefonului.

  1. Căutarea reperelor: aplicația caută în cadrul video tiparele 1:1:3:1:1 ale celor trei pătrate de reper.
  2. Corectarea perspectivei: din pozițiile reperelor și ale modelelor de aliniere calculează cum este înclinat codul și „îndreaptă” imaginea.
  3. Stabilirea grilei: liniile de sincronizare îi spun cât de mare este un modul și câte module are codul.
  4. Binarizarea: fiecare modul este clasificat ca alb sau negru, ținând cont de iluminarea neuniformă.
  5. Citirea formatului: află nivelul de corecție și masca, apoi anulează masca.
  6. Corectarea erorilor: algoritmul Reed-Solomon verifică și repară blocurile de date.
  7. Interpretarea: datele devin text, iar sistemul recunoaște tipul conținutului, de exemplu o adresă web, și îți propune o acțiune.

Pe telefoanele moderne, cititorul este integrat direct în aplicația de cameră, fără să mai fie nevoie de o aplicație separată. Despre felul în care camera transformă lumina în pixeli și pixelii în biți afli mai multe în ghidul despre tehnologia digitală.

Codurile QR statice și dinamice

Un cod QR static conține direct informația finală, de exemplu adresa completă a unei pagini; nu poate fi modificat după tipărire. Un cod dinamic conține o adresă scurtă a unui serviciu de redirecționare, care trimite apoi vizitatorul la destinația aleasă de proprietar și care poate fi schimbată oricând.

CriteriuCod QR staticCod QR dinamic
Ce conținedatele finaleo adresă intermediară
Poate fi modificat după tipărirenuda, destinația
Funcționează fără serviciul care l-a creatda, pentru totdeaunanu, depinde de serviciul de redirecționare
Statistici de scanarenuda, de obicei
Confidențialitatenu trece prin intermediariintermediarul vede fiecare scanare

Atenție: Codurile dinamice create cu servicii gratuite pot înceta să funcționeze dacă serviciul își schimbă condițiile sau dispare. Pentru materiale tipărite pe termen lung, un cod static care duce direct la propriul site este mai sigur.

Unde întâlnești coduri QR

Codurile QR au devenit o punte între lumea fizică și cea digitală, iar utilizările lor se împart în câteva tipuri clare:

  • adrese web pe afișe, ambalaje, meniuri și plăcuțe informative;
  • bilete și tichete de transport, de spectacole sau de îmbarcare, verificate la intrare prin scanare;
  • conectarea la Wi-Fi: un cod care conține numele și parola rețelei te conectează fără să tastezi nimic;
  • configurarea autentificării în doi pași: codul afișat de un site transmite aplicației de autentificare cheia secretă, cum explicăm în articolul despre autentificarea în doi pași;
  • asocierea dispozitivelor: legarea aplicației de mesagerie de calculator sau verificarea codului de siguranță dintre doi interlocutori, detaliată în articolul despre criptarea end-to-end;
  • plăți: în multe țări, codurile QR transmit datele unei plăți sau ale unui transfer bancar, ca alternativă la plata prin apropiere descrisă în ghidul despre NFC și plata contactless.

Quishing: când codul te duce pe un site fals

Codul QR în sine nu poate infecta telefonul, dar adresa la care trimite poate fi o capcană. Fenomenul a primit chiar un nume, quishing, din alăturarea cuvintelor QR și phishing. Avantajul pentru escroci este că nu vezi adresa înainte de scanare și că un cod pare mai „oficial” decât un link primit pe mesaj.

Scenarii frecvente

  • Autocolante lipite peste codurile reale de pe parcometre, stații de încărcare sau trotinete, care duc la un formular fals de plată.
  • E-mailuri cu coduri QR care pretind că trebuie să-ți „reconfirmi contul” sau să urmărești un colet; codul ocolește filtrele care analizează linkurile.
  • Fluturași și afișe cu oferte prea bune ca să fie adevărate.
  • Coduri care cer instalarea unei aplicații din afara magazinului oficial.

Cum te protejezi

  1. Înainte să deschizi, citește adresa afișată de cameră; verifică numele domeniului, nu doar începutul lui.
  2. Pe parcometre și stații publice, verifică dacă peste codul original nu e lipit un autocolant.
  3. Nu introduce date de card sau parole pe o pagină deschisă dintr-un cod de pe stradă; folosește aplicația oficială sau site-ul tastat de mână.
  4. Tratează un cod QR primit pe e-mail cu aceeași suspiciune ca pe un link necunoscut.
  5. Nu instala aplicații din fișiere descărcate prin coduri QR.

Semnalele unui site fals sunt aceleași ca la orice alt atac de acest tip și le găsești explicate în ghidul despre phishing. Iar dacă un cod te conectează la o rețea Wi-Fi necunoscută, citește și articolul despre riscurile rețelelor Wi-Fi publice.

Cum creezi un cod QR ușor de citit

Un cod QR bun depinde mai mult de felul în care este tipărit și afișat decât de generatorul folosit. Câteva reguli practice evită majoritatea problemelor:

  • Contrast puternic: module închise pe fundal deschis; codurile inversate sau colorate pastel sunt citite greu de unele camere.
  • Zona liniștită: lasă în jurul codului o margine albă de cel puțin patru module.
  • Dimensiune potrivită distanței: ca regulă orientativă, latura codului ar trebui să fie de cel puțin o zecime din distanța de la care va fi scanat.
  • Suprafață plană și mată: hârtia lucioasă sau suprafețele curbate produc reflexii și deformări.
  • Testare reală: scanează codul tipărit cu mai multe telefoane, în lumina locului unde va fi afișat.

Ideile principale despre codurile QR

Codul QR este un format standardizat care împachetează biți într-o grilă de module, cu repere care îl fac ușor de găsit și cu o corecție a erorilor care îl face rezistent la pete și zgârieturi. Puterea lui este simplitatea: oricine poate genera și citi un cod fără licențe sau aplicații speciale. Aceeași simplitate îl face însă un instrument comod pentru escroci, de aceea contează mai mult unde duce codul decât codul în sine.

Pe scurt:

  • trei pătrate de reper din colțuri arată poziția și orientarea codului;
  • 40 de versiuni, de la 21 × 21 la 177 × 177 module;
  • corecția Reed-Solomon reface între 7% și 30% din date;
  • codul static e permanent, cel dinamic depinde de un serviciu intermediar;
  • verifică adresa înainte să deschizi și nu plăti prin coduri lipite pe stradă.

Întrebări frecvente

Poate un cod QR să-mi infecteze telefonul?

Codul în sine conține doar text și nu poate rula programe. Riscul vine din pagina sau din aplicația la care duce, de aceea verifică adresa înainte să o deschizi.

De ce un cod QR deteriorat se citește totuși?

Pentru că, pe lângă date, conține informații suplimentare de corecție a erorilor, calculate cu codurile Reed-Solomon. În funcție de nivelul ales, se pot reface până la aproximativ 30% din module.

Expiră codurile QR?

Codurile statice nu expiră niciodată, pentru că informația este chiar în ele. Codurile dinamice pot înceta să funcționeze dacă serviciul de redirecționare care le gestionează se oprește sau abonamentul expiră.

Câte informații încap într-un cod QR?

Cel mai mare cod, versiunea 40, poate stoca până la 7.089 de cifre sau 2.953 de octeți, cu corecția minimă. În practică, pentru o citire rapidă, se folosesc coduri mult mai mici, cu conținut scurt.

Pot crea singur un cod QR?

Da, formatul este liber, iar generatoarele sunt disponibile în multe programe și pe site-uri. Pentru materiale tipărite pe termen lung, preferă un cod static care duce direct la adresa ta.

↑