Décodeur de code QR

Dépose une image de code QR et vois tout ce que le symbole contient : le contenu décodé et découpé en champs, la version et le nombre de modules, le niveau de correction d'erreurs, le masque, les modes d'encodage et les octets bruts en hexadécimal. Le décodage se fait dans cet onglet : l'image ne quitte jamais ton appareil.

Dépose ici une image de code QR, ou colle-la

PNG, JPG, WebP ou GIF

Décodé dans ton navigateur. Le fichier n'est jamais téléversé, et rien à son sujet n'est stocké ni envoyé où que ce soit.

Ce qu'un décodeur de code QR montre et qu'un scanner ne montre pas

Un décodeur de code QR est un programme qui lit un code QR depuis une image et rapporte les données stockées ainsi que la structure du symbole qui les porte. L'appareil photo d'un téléphone s'arrête à la première partie. La structure est ce qui explique pourquoi un code a la taille qu'il a, et ce qui a mal tourné quand un générateur a produit quelque chose d'inattendu.

Les six choses que contient tout code QR

Chaque code QR, du code de carte de visite de 21 modules à celui de 177 modules, stocke les six mêmes informations. ISO/IEC 18004, la norme du code QR, définit chacune d'elles.

  • La version est la taille du symbole, de 1 à 40. La version 1 fait 21 x 21 modules et chaque version ajoute quatre modules par côté : la version 40 fait donc 177 x 177.
  • Le niveau de correction d'erreurs est L, M, Q ou H, et récupère environ 7 %, 15 %, 25 % et 30 % du symbole. Un niveau plus élevé consacre une plus grande part du symbole à la redondance : le même contenu demande donc une version plus grande.
  • Le masque est l'un des huit motifs, numérotés de 0 à 7, qui inversent des modules pour que le code n'ait ni grandes zones vides ni formes imitant un motif de détection. Deux codes contenant des données identiques avec des masques différents n'ont rien à voir visuellement.
  • Les modes d'encodage sont numérique, alphanumérique, octet et kanji. Le mode numérique range trois chiffres dans 10 bits et le mode alphanumérique deux caractères dans 11 bits, tandis que le mode octet dépense 8 bits pour chaque caractère.
  • Le contenu est le texte lui-même : un lien, des identifiants Wi-Fi, une carte de contact. Un code QR stocke du texte et rien d'autre ; ce qu'un téléphone en fait dépend de la façon dont le texte commence.
  • Les mots de code de correction d'erreurs sont la redondance Reed-Solomon qui permet à un décodeur de reconstruire des données abîmées. Ils sont consommés pendant le décodage, et c'est pourquoi un décodeur montre le résultat plutôt que les mots de code.

Décodé sur ton appareil, mots de passe compris

L'image est décodée dans cet onglet du navigateur et n'est jamais téléversée. Cela compte davantage pour un décodeur que pour la plupart des outils, parce que les contenus que l'on inspecte sont les plus sensibles : un code QR Wi-Fi contient le mot de passe du réseau en texte clair, et un code de configuration à deux facteurs contient le secret qui génère tous les futurs codes de connexion.

Le décodeur affiche un mot de passe Wi-Fi dans sa propre ligne, parce que le lire est en général la raison pour laquelle le code a été décodé. Il indique l'émetteur et le compte d'un code à deux facteurs mais laisse le secret dans le contenu brut, où le copier doit être un geste délibéré.

Comment décoder un code QR depuis une image

Quatre étapes, d'un fichier image au contenu complet et à la structure du code QR qu'il renferme.

Générer un code QR
  1. 1

    Ajoute l'image

    Fais glisser un PNG, JPG, WebP ou GIF sur le panneau, choisis un fichier, ou colle une capture depuis le presse-papiers. Garde la marge claire autour du code dans le cadrage, car le décodeur s'en sert pour trouver les bords du symbole.

  2. 2

    Lis le contenu et ses champs

    Le texte décodé apparaît en entier, avec son type indiqué. Les liens sont découpés en schéma, domaine, chemin et chaîne de requête ; les codes Wi-Fi en nom de réseau, type de sécurité et mot de passe ; les cartes de contact en nom, téléphone et e-mail.

  3. 3

    Vérifie la structure du symbole

    La version, le nombre de modules, le niveau de correction d'erreurs, le masque et les modes d'encodage sont listés sous le contenu. Pour les versions 1 à 20, le décodeur indique aussi combien d'octets de la capacité du symbole le contenu utilise.

  4. 4

    Inspecte les octets bruts si tu en as besoin

    Le dump hexadécimal montre le contenu exactement tel qu'il est stocké, avant le décodage des caractères. C'est là qu'il faut chercher un caractère invisible, une marque d'ordre des octets ou un texte enregistré dans le mauvais jeu de caractères.

Quand un décodeur est le bon outil

Quatre situations où le contenu seul ne suffit pas et où la structure du code QR est la réponse.

Déboguer un générateur de codes QR

Une bibliothèque de génération a produit un code plus grand que prévu. Le décodeur en montre la cause d'un coup d'œil : un niveau de correction d'erreurs H là où M était voulu, ou un contenu fait de chiffres stocké en mode octet au lieu du mode numérique.

Comprendre pourquoi un code est si dense

Une longue URL de suivi pousse un code à la version 8 ou plus, avec des modules trop petits pour être imprimés à 2 cm. La ligne de capacité montre combien d'octets le contenu utilise, et le tableau des champs montre quels paramètres de requête pourraient être retirés.

Vérifier ce que contient vraiment un code Wi-Fi ou de contact

Avant d'imprimer un code Wi-Fi pour les invités, décode-le et lis les champs. Un mauvais type de sécurité ou une espace égarée dans le mot de passe est visible dans le tableau et invisible dans le motif.

Résoudre une énigme à code QR

Pour une énigme à code QR ou une épreuve de capture the flag, le décodeur confirme la version, le niveau de correction d'erreurs et le masque d'un code qui fonctionne : un décodage à la main peut ainsi être comparé à une réponse connue.

Comment un code QR est décodé, étape par étape

Les dix étapes que tout décodeur de code QR exécute, dans l'ordre. C'est la même séquence que suit une personne qui résout un code QR à la main.

  • Localiser les trois motifs de détection

    Le décodeur cherche le rapport 1:1:3:1:1 de sombre et de clair qu'une ligne traversant un motif de détection produit sous n'importe quel angle. Trois d'entre eux donnent la position, la taille et la rotation du code QR ; l'angle qui n'en a pas est celui d'en bas à droite.

  • Déduire la version de la taille

    Le nombre de modules découle de la distance entre les motifs de détection, et la version vaut (modules - 17) / 4. Les versions 7 et suivantes stockent aussi le numéro de version deux fois, dans un bloc de 18 bits à côté des motifs de détection.

  • Lire l'information de format

    Quinze bits à côté des motifs de détection contiennent le niveau de correction d'erreurs sur 2 bits, le masque sur 3 bits, et 10 bits de correction d'erreurs qui leur sont propres. L'information de format est stockée deux fois : une copie abîmée n'arrête donc pas le décodage.

  • Retirer le masque fixe du format

    Les 15 bits de format sont combinés par XOR avec le motif fixe 101010000010010 avant d'être placés, si bien que l'information de format n'est jamais entièrement à zéro. Un décodeur applique un XOR avec le même motif pour retrouver les vraies valeurs.

  • Annuler le masque des données

    Le masque indiqué dans l'information de format est appliqué à nouveau à la zone de données, ce qui restaure les modules d'origine. Le masquage ne touche que les modules de données et de correction d'erreurs, jamais les motifs de détection, de synchronisation ou d'alignement.

  • Lire les modules dans l'ordre en zigzag

    Les données sont lues par colonnes larges de deux modules en partant de l'angle inférieur droit, vers le haut, puis vers le bas dans la paire de colonnes suivante, en sautant chaque motif de fonction. Huit modules forment un mot de code.

  • Désentrelacer les blocs de mots de code

    Les grands symboles répartissent leurs mots de code en plusieurs blocs et les entrelacent : une rayure abîme ainsi un peu de chaque bloc plutôt que la totalité d'un seul. Le décodeur sépare à nouveau les blocs avant de les corriger.

  • Appliquer la correction d'erreurs Reed-Solomon

    Chaque bloc est vérifié et réparé à l'aide de ses mots de code de correction d'erreurs. C'est l'étape qui permet à un code QR de survivre à un logo posé en son centre, et le moment où un code trop abîmé échoue franchement plutôt que de renvoyer des données fausses.

  • Lire l'indicateur de mode et le nombre de caractères

    Le flux de bits corrigé commence par un indicateur de mode de 4 bits : 0001 numérique, 0010 alphanumérique, 0100 octet, 1000 kanji, 0111 ECI. Un nombre de caractères suit, long de 8 bits pour le mode octet dans les versions 1 à 9.

  • Décoder les segments jusqu'au terminateur

    Chaque segment est décodé selon son mode, et un symbole peut en contenir plusieurs à la suite. Les données se terminent par un terminateur 0000, après quoi la capacité restante est remplie par les octets de bourrage alternés 11101100 et 00010001.

Le générateur KoloQR avec un code QR en cours de conception, prêt à télécharger

Crée un code qui mérite d'être décodé

KoloQR, un générateur de codes QR gratuit avec codes QR ronds et formes personnalisées, crée des codes QR statiques pour des liens, des réseaux Wi-Fi, des e-mails, des numéros de téléphone et des profils sociaux, et les exporte en SVG, PDF, EPS ou PNG.

Chaque code KoloQR est généré au niveau de correction d'erreurs H, ce qui laisse de la place pour un logo et pour des motifs de modules décoratifs. Décodes-en un ici et le panneau de structure montre exactement cela. KoloQR ne fait pas de codes QR dynamiques : le contenu que tu décodes est donc la destination elle-même, pas une redirection.

Générer un code QR

Questions? Answered

Un scanner renvoie ce que dit le code QR ; un décodeur renvoie aussi la façon dont le symbole est construit. Ce décodeur rapporte la version, le niveau de correction d'erreurs, le masque, les modes d'encodage et les octets bruts en plus du contenu. Pour le contenu et un score de scannabilité seulement, le scanner de code QR est le chemin le plus court.

Seulement dans la limite de ce que permet la correction d'erreurs du code lui-même. Un code QR récupère entre environ 7 % et 30 % de son symbole selon son niveau, et le décodeur utilise tout cela automatiquement. Au-delà de cette limite, ou s'il manque un motif de détection, aucun décodeur ne renvoie de résultat, et le code doit être reconstruit à la main à partir de son information de format.

Enregistre le code QR comme image ou fais-en une capture d'écran, puis dépose le fichier sur le décodeur de cette page. L'image est décodée dans le navigateur d'un ordinateur portable ou de bureau, sans caméra, sans appli et sans téléversement. Un code sur papier doit d'abord être photographié ou numérisé dans un fichier.

Un masque est l'un des huit motifs fixes qu'un générateur de codes QR applique à la zone de données pour casser les grandes régions vides et les formes qui ressemblent à des motifs de détection. Le générateur essaie les huit et garde celui dont le score de pénalité est le plus bas. Le numéro du masque choisi est stocké dans l'information de format pour qu'un décodeur puisse l'annuler.

Trois réglages changent le motif sans changer les données : le niveau de correction d'erreurs, le masque et la version. Deux générateurs qui encodent le même lien aux niveaux M et H produisent des motifs différents, et souvent des tailles différentes. Décode les deux : le contenu est identique alors que les lignes de structure diffèrent.

Non. Un code QR stocke son contenu et les réglages de structure nécessaires pour le lire, et rien d'autre. Il n'y a ni auteur, ni date de création, ni identifiant d'appareil, ni compteur de scans dans le symbole. Ce genre d'information n'existe que pour les codes QR dynamiques, et elle est conservée sur le serveur du fournisseur plutôt que dans le code.

Décode le code QR et lis le domaine. Si le contenu est l'adresse finale que tu attendais, le code est statique. Si le contenu est un lien court sur le domaine d'un fournisseur de codes QR qui redirige ailleurs, le code est dynamique et cesse de fonctionner si ce fournisseur désactive le lien. Codes QR statiques ou dynamiques détaille le compromis.

Le contenu est décodé à partir du symbole entier avec la correction d'erreurs, alors que le niveau et le masque sont lus dans 15 bits de format à côté des motifs de détection. Sur une image en basse résolution ou très stylisée, le contenu peut se décoder alors que cette petite zone ne peut pas être échantillonnée proprement. Une image plus grande et plus nette du même code remplit normalement la ligne.

Non. Le décodeur ne lit que les codes QR, y compris les codes aux modules arrondis ou en points et les codes clairs sur fond sombre. Data Matrix, Aztec, PDF417 et les codes-barres linéaires utilisent des structures différentes et demandent un autre lecteur. Les codes Micro QR, qui n'ont qu'un seul motif de détection, ne sont pas pris en charge non plus.

La vue hexadécimale montre le contenu sous la forme des octets stockés dans le code QR, avant qu'ils ne soient interprétés comme du texte. La plupart des générateurs stockent le texte en UTF-8 : les lettres latines simples apparaissent donc sous leurs valeurs ASCII. La vue révèle ce que le texte cache : une marque d'ordre des octets en tête (ef bb bf), un saut de ligne final ou une espace insécable dans un mot de passe Wi-Fi.

Pourquoi KoloQR ?

  • Crée des codes QR pour des sites web, des menus, le Wi-Fi, des PDF et des cartes de visite
  • Personnalise les couleurs, les logos et des formes uniques
  • Télécharge des fichiers PNG et SVG de haute qualité
  • Conçu pour l'impression comme pour le numérique
Générer un code QR
Un code QR noir tout simple à côté du même code redessiné en cercle avec des couleurs de marque