Décodeur de QR codes
Lisez un QR code à partir d’une image, et voyez où il mène avant d’ouvrir quoi que ce soit. Rien n’est jamais ouvert ni exécuté automatiquement.
Site
Aucun signe suspect repéré. Cela ne prouve pas que le site est sûr : vérifiez le nom ci-dessus avant de l’ouvrir.
Contenu exact
Chercher des caractères sosies Ouvrir le lien dans un nouvel onglet
Besoin d’en créer un ? Créez un QR code
Transparence
L’image est lue dans votre navigateur, par les scripts listés ci-dessous. Ni l’image ni son contenu ne quittent cette page.
- Garanti par votre navigateur
- La politique de sécurité du contenu (CSP) de cette page n’autorise qu’une destination, la mesure d’audience du site (
connect-src https://stats.r-no.fr, voir plus bas), et interdit tout envoi de formulaire (form-action 'none') : même un bogue ne pourrait envoyer nulle part votre image ni son contenu. L’image est affichée par une adresseblob:, locale à votre navigateur. Vous pouvez lire cette politique en haut du code source de la page. - Mesure d’audience
- Comme toutes les pages du site, celle-ci compte sa visite avec Umami, installé sur le serveur de R-no lui-même (
stats.r-no.fr). Il reçoit l’adresse de la page, sans paramètres ni ancre, le site d’où vous venez (son nom de domaine seulement), votre navigateur, votre système, votre langue et la taille de votre écran, ainsi que le pays, la région et la ville déduits de votre adresse IP, qui n’est pas conservée. Il ne reçoit jamais ce que vous saisissez, ni le résultat de l’outil. Aucun cookie, rien d’enregistré dans votre navigateur ; si votre navigateur demande à ne pas être suivi (Do Not Track), rien n’est mesuré. Les données sont effacées au bout de 25 mois.- /commun/mesure.js : le filtre appliqué avant chaque envoi, écrit pour R-no Toolbox. 1.4 kB
SHA-256225eec74fd12623d82fc05ee7d222be629ce454d081c129e8d1e249ed37ee716 - https://stats.r-no.fr/m.js : le script de suivi d’Umami, libre (MIT), servi par le serveur de mesure. Son empreinte n’est pas affichée ici : elle change à chaque version d’Umami, et vous ne pouvez pas vérifier depuis votre navigateur qu’il s’agit du code publié. Pour cette partie, il faut faire confiance à R-no.
- /commun/mesure.js : le filtre appliqué avant chaque envoi, écrit pour R-no Toolbox. 1.4 kB
- Rien ne s’exécute tout seul
- Le contenu est affiché comme du simple texte. Un lien web (http ou https) n’est proposé qu’après avoir été analysé, et ne s’ouvre que si vous cliquez dessus, dans un nouvel onglet qui ne sait pas d’où vous venez. Les autres types de liens (javascript:, data:, liens d’applications…) ne sont jamais rendus cliquables. Les réseaux Wi-Fi et les contacts sont affichés, jamais ajoutés à votre appareil. Aucun accès à la caméra : seulement un fichier que vous choisissez.
- Ce qui est conservé
- Aucun cookie, et rien dans l’adresse. L’image et son contenu ne sont jamais conservés, et ils sont effacés quand vous quittez la page. La langue est donnée par l’adresse elle-même (
/en/ou/fr/) : rien n’est conservé pour s’en souvenir. Comme tout site web, le serveur note le téléchargement de la page et de ses fichiers dans ses journaux d’accès (adresse IP, date et heure, adresse demandée, nom du navigateur). Il ne reçoit jamais votre image. Le bouton « Chercher des caractères sosies » transmet le lien à domains/lookalike après un#, que les navigateurs n’envoient jamais au serveur. - Le code qui s’exécute ici
-
- app.js: l’outil lui-même, écrit pour R-no Toolbox : il lit l’image, analyse le contenu et l’affiche. Non minifié. 24.1 kB
SHA-2565b8bbfd449c2a46b0874aa2720ac3854ff0cb36cf4001cfb43c90e84ba53fc44 - jsQR.js: le décodeur jsQR, version 1.4.0, qui trouve et lit le QR code dans l’image. Licence Apache 2.0. Non minifié. 256.9 kB
SHA-256bc40c8a15196236b2314db0856f72ca0b49980cd5413b8c852a7349f5fee0859 - textes.js: les messages en français de l’outil, affichés par son script (le reste de la page française est écrit dans son HTML à la construction du site). Il ne fait que définir des textes, sans aucune logique. 8.5 kB
SHA-256e43501ee155c3190ff60bcd300b49983eef75f128843d03cf32d8f4a16c1ab03 - /commun/langue.js: l’aide à la traduction, la même sur toutes les pages du site. Elle lit la langue de la page et donne à l’outil ses messages dans cette langue. Elle ne conserve rien. 1.6 kB
SHA-25680f76f69773ef628d36d09bf8387cfedebda4529210d7120649b6f5603310631 - jsQR.LICENSE.txt: le texte complet de la licence de jsQR.
- app.js: l’outil lui-même, écrit pour R-no Toolbox : il lit l’image, analyse le contenu et l’affiche. Non minifié. 24.1 kB
- D’où vient jsQR.js
- C’est le fichier publié sur npm par ses auteurs (
jsqr1.4.0,dist/jsQR.js), inchangé jusqu’au dernier octet : son empreinte peut être comparée à celle du paquet publié. npm vérifie l’intégrité du paquet contre le fichier de verrouillage ; à chaque déploiement, le fichier est téléchargé à nouveau et comparé octet pour octet à celui servi ici, et le déploiement s’arrête s’ils diffèrent. jsQR n’a pas évolué depuis 2021 ; la norme des QR codes non plus. - Vérifiez vous-même
- Téléchargez un fichier et comparez son empreinte avec celle affichée ci-dessus :
curl -s https://r-no.fr/qr-code/decoder/jsQR.js | shasum -a 256 - Limites
- Un seul QR code est lu par image ; s’il y en a plusieurs, recadrez l’image. Les photos très floues, déformées ou mal éclairées peuvent ne pas être lues, pas plus que les Micro QR codes ou les autres codes-barres. L’analyse des liens repère les pièges courants (destination cachée, caractères trompeurs, lien non chiffré, @ trompeur…) ; elle ne peut pas distinguer un site sûr d’un site dangereux, et elle délimite approximativement le nom du site pour certains domaines nationaux. Certains formats sont reconnus et mis en forme (Wi-Fi, contact, e-mail, SMS, téléphone, position, événement) ; tout le reste est affiché comme du texte.