URL et domaines de phishing

Décodeur de QR code

Exécution localeNouveau

L'outil lui-même est en anglais ; cette page vous l'explique dans votre langue.

Utilisez Décodeur de QR code

Fonctionnalités

Chargez, déposez ou collez l'image d'un QR code. Le contenu apparaît sous forme de texte désamorcé, avec ce qu'il fait : un lien et son véritable hôte, une connexion Wi-Fi, une demande de paiement ou un secret d'authentification à deux facteurs.

Tout se passe entièrement dans votre navigateur : aucune des données que vous saisissez n'est transmise.

Comment utiliser Décodeur de QR code

  1. Obtenez une image du code. Faites une capture d'écran ou une photo du QR code. La page n'utilise jamais votre caméra.
  2. Chargez-la. Déposez l'image sur la zone, cliquez sur la zone pour choisir un fichier (PNG, JPEG, GIF, WebP, BMP ou SVG jusqu'à 20 Mo), ou collez une capture d'écran avec Ctrl+V.
  3. Vérifiez l'aperçu. L'image apparaît avec le code détecté entouré. Un badge indique le type de contenu et le décodeur qui l'a lu.
  4. Lisez le contenu et les avertissements. Le contenu est affiché désamorcé : les liens ne sont donc pas cliquables. Les notes rouges et jaunes en dessous expliquent ce que ferait le code.
  5. Examinez les champs. Les champs découpent le contenu en parties comme Host, Network name, Amount ou Recipient. Les adresses de portefeuille ont leur propre bouton Copy.
  6. Passez à l'étape suivante. Pour un lien, utilisez Send to… pour le transmettre à Link Unwrapper, Homoglyph Checker ou URL Parser sans le visiter.

Exemple

Lien de paiement de stationnement avec un hôte caché

Saisie
https://pay-parking.example@198.51.100.24/pay?zone=401
Résultats (enregistrés le 2026-10-20)
Web link read by jsQR (as is)

Payload (defanged)

hxxps://pay-parking[.]example[@]198[.]51[.]100[.]24/pay?zone=401
Copy raw

Text before "@" is not the destination: this link opens 198[.]51[.]100[.]24, not "pay-parking[.]example".

The host is a bare IP address (198[.]51[.]100[.]24), not a domain name.

HOST
198[.]51[.]100[.]24
USER INFO BEFORE @
pay-parking[.]example
SCHEME
https
PATH
/pay
QUERY
?zone=401

Next: use Send to… above. URL Parser splits the link into parts.

Load example dessine ce texte sous forme de QR code sur la page et décode l'image : le véritable hôte est l'adresse IP 198.51.100.24, et pay-parking.example avant le @ n'est qu'une information d'utilisateur ; les deux sont donc signalés comme signes de danger.

Ce qu'il vérifie

SignalCe que cela signifie
Type de contenuLien web, réseau Wi-Fi, demande de paiement, secret à deux facteurs, brouillon d'e-mail, de SMS ou d'appel, carte de contact, événement d'agenda, lien d'application ou texte brut. La couleur du badge suit l'avertissement le plus grave.
Hôte caché dans un lienLe texte avant @ n'est pas la destination, et un hôte écrit sous forme d'adresse IP s'affiche en rouge. Un hôte punycode qui mélange des alphabets s'affiche aussi en rouge.
Raccourcisseur ou encapsulation de messagerieLes liens passant par bit.ly, qrco.de et des services similaires, ou par Safe Links ou URL Defense, cachent la véritable adresse. L'outil le signale et vous renvoie vers Link Unwrapper.
Hébergement gratuit, http, port, sous-domaines profondsLe http simple reçoit un avertissement jaune. Les hébergeurs gratuits comme github.io ou pages.dev, un port non standard et les hôtes de cinq niveaux ou plus reçoivent des notes, car une telle adresse en dit peu sur qui gère la page.
Secret à deux facteurs (rouge)Un code otpauth contient un secret qui génère vos codes à usage unique, et un code otpauth-migration contient un export complet d'authentificateur. Le secret reste caché jusqu'à ce que vous appuyiez sur Show secret.
Demande de paiement cryptoLes liens de paiement Bitcoin, Ethereum, Solana, TRON, TON et autres affichent l'adresse et le montant. Un code Ethereum qui appelle approve, increaseAllowance, setApprovalForAll ou permit s'affiche en rouge, tout comme une demande de transaction Solana Pay.
Codes marchands UPI et EMVScanner un code UPI envoie de l'argent depuis votre compte, et un mandat UPI autorise des prélèvements répétés. Un code EMV dont le checksum CRC ne correspond pas a été modifié ou endommagé.
Schémas dangereuxjavascript:, data:, file:, ms-msdt:, search-ms: et les schémas similaires s'affichent en rouge. Les codes qui ouvrent une application au lieu d'une page web reçoivent une note jaune.
Détails Wi-FiNom du réseau, type de sécurité, présence ou non d'un mot de passe et réseau masqué ou non. Les réseaux ouverts reçoivent un avertissement.

D'autres exemples

QR code d'un réseau Wi-Fi ouvert

Saisie
WIFI:T:nopass;S:Airport Free WiFi;;
Résultat

Wi-Fi network. Network name (SSID) : Airport Free WiFi, Security : nopass, Password : none, Hidden network : no. Avertissement jaune : Open network: traffic is not encrypted at the Wi-Fi level. Une note indique que des attaquants installent des réseaux ouverts sosies pour intercepter le trafic.

QR code contenant un secret d'authentificateur

Saisie
otpauth://totp/Example:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Example
Résultat

Two-factor (TOTP/HOTP) secret. Le contenu affiche secret=•••••••• jusqu'à ce que vous appuyiez sur Show secret. Champs : Type TOTP, Issuer Example, Account alice[@]example[.]com, Secret present (16 characters, hidden), Algorithm SHA1 (default), Digits 6 (default), Period 30 s, plus un avertissement rouge : n'envoyez jamais cette image à personne.

Approbation de jeton déguisée en paiement (adresses de test EIP-55)

Saisie
ethereum:0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359@1/approve?address=0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed&uint256=115792089237316195423570985008687907853269984665640564039457584007913129639935
Résultat

Ethereum payment request. Champs : Network Ethereum, Contract 0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359, Chain ID 1, Function approve, Address parameter (le spender) et Token amount (raw units), ici le maximum à 78 chiffres. Avertissement rouge : This asks your wallet to call approve: it gives 0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed permission to move your tokens. Wallet drainers use exactly this. Une note jaune suit : comparez l'adresse entière.

FAQ

Qu'affiche le décodeur pour un QR code ?

Le texte décodé, désamorcé pour qu'il ne soit pas cliquable, et son type : lien web (hôte, punycode, hôte IP, information d'utilisateur avant @, raccourcisseurs et encapsulations de liens), réseau Wi-Fi, brouillon d'e-mail, d'appel ou de SMS, demande de paiement crypto, UPI ou EMV, secret à deux facteurs otpauth, carte de contact ou événement d'agenda. Chaque type reçoit les avertissements qui le concernent, par exemple qu'un code otpauth contient un secret 2FA.

Pourquoi une image ne se décode-t-elle pas ?

Le code peut être trop petit, flou, coupé sur les bords ou masqué par des reflets ; il est généralement utile de recadrer l'image pour ne garder que le code et sa bordure blanche. Le décodeur utilise d'abord le détecteur de codes-barres intégré au navigateur s'il en existe un, puis applique jsQR à l'image (redimensionnée à 1 600 pixels sur le côté le plus long), un seuil noir et blanc, l’ajout d’une bordure blanche et, pour les images dont le côté le plus long ne dépasse pas 800 pixels, un agrandissement au format 2x.

L'image est-elle téléversée ?

Non. L'image est décodée dans votre navigateur avec la bibliothèque jsQR intégrée et n'est jamais envoyée nulle part. La caméra n'est pas utilisée : prenez une photo ou une capture d'écran, puis chargez-la ou collez-la.

Que se passe-t-il si l'image contient plusieurs QR codes ?

Si votre navigateur dispose d'un détecteur de codes-barres intégré, chaque code trouvé est listé comme QR code 1 of N, chacun avec ses propres avertissements. Le repli jsQR ne lit qu'un code par image : recadrez donc l'image sur le code qui vous intéresse.

Pourquoi le mot de passe Wi-Fi ou le secret à deux facteurs est-il masqué ?

Pour qu'il n'apparaisse ni à l'écran ni sur une capture d'écran du résultat. Show secret l'affiche dans la zone du contenu, et Copy raw copie toujours le texte complet.

Puis-je déposer un lien vers une image d'un autre site ?

Non. La page ne lit que des fichiers image et des images collées, et ne télécharge rien. Enregistrez d'abord l'image, ou copiez l'image elle-même et collez-la. Un texte data:image en base64 collé fonctionne aussi.

Explication des termes

Étude PhishDestroy