LegitInformant

QR code scanner - see the link before you open it

Read the destination hidden in a QR code image without ever opening it.

Nothing leaves your browser. This tool does its work on your own machine — there is no upload, no server request, and nothing is stored.

QR code image

Choose an image, drop one here, or press Ctrl+V to paste a screenshot

Photograph, screenshot or saved image. Decoded in this page — the destination is shown, never opened.

Why a QR code is a good place to hide something

Every other link you meet, you can read. You can hover it, look at the status bar, notice that the domain is wrong. A QR code removes all of that: it is unreadable to a human by design, so the first time you learn where it goes is when your phone is already going there.

That gap is the whole attack, and it has a name now — quishing. The common forms:

  • Stickers over real codes on parking meters, EV chargers, restaurant tables and charity collection points. The sticker costs pennies and the payment page it leads to looks exactly like the real one.
  • Codes in emails and PDFs, used specifically because a code is an image and most email security scans links as text.
  • Fake invoices and letters that arrive on paper, where people are far less suspicious than they are online.
  • Delivery cards pushed through the door asking you to scan to rearrange a parcel you were not expecting.

What a code can contain besides a link

QR codes carry arbitrary text, and several formats have side effects. A WIFI: code joins a network. A SMSTO: or tel: code opens a message or a call to a number that may be premium rate. A BEGIN:VCARD code adds a contact. A mailto: code opens a pre-written email. This tool names the type and shows the whole payload before any of that can happen.

Habits worth having

  • On anything to do with payment, feel the code. A sticker over a printed code has an edge you can catch with a fingernail.
  • Prefer typing the address yourself, or using the organisation's own app. A code is a convenience, never a requirement.
  • If your phone's camera previews the URL before opening it, read it. If it does not, that setting is usually worth turning on.
  • Be most careful with codes that arrive unprompted — in the post, in an email, on a card through the door.

How the decoding works here

The image is drawn to a canvas in this page and read back as pixels. It is converted to greyscale, thresholded block by block so a shadow across the code does not break it, then searched for the three large squares in the corners. Those give the orientation and the size of a module, which is enough to sample the grid, read the format information, undo the mask pattern and pull out the codewords. Reed-Solomon error correction then repairs whatever was misread — that is why a QR code still works with a logo printed over the middle of it.

All of it happens in your browser. Nothing is uploaded, which matters because QR codes appear on boarding passes, event tickets, prescriptions and bank statements.

Common questions

What is quishing?

QR phishing: a code stickered over a real one on a parking meter, printed on a fake invoice, or pasted into an email. Because a QR code is unreadable to a human, you cannot see the destination until your phone is already opening it.

Is it safe to scan a QR code with this?

Yes, because nothing is visited. The image is decoded into text and the text is shown to you. Opening the link stays your decision, and the result flags the patterns worth worrying about first.

Can I scan a QR code from a screenshot?

Yes. Paste it straight from the clipboard with Ctrl+V, drop the file onto the page, or pick it with the file button. Screenshots, photos of a printed code and saved images all work.

Does the image get uploaded to a server?

No. Decoding happens entirely in your browser. That is deliberate: QR codes on boarding passes, tickets and bank statements carry personal data.

These tools check form, not honesty. A valid checksum, a passing SPF record or a decoded link tells you something is well formed — never that the person behind it is telling the truth. When money is involved, verify on a phone number you already had, and run the link or address through the full check as well.