Layerbit
Runs entirely in your browser

QR Code & Barcode Generator

Generate print-ready QR codes and linear barcodes, with structural checks on the URL you are encoding.

Foreground
Background
Awaiting Input Data...

Before you print a code

Most codes that fail in the field were fine on screen. These are the checks worth making before a code goes to print, in the order they usually matter.

Durability: For anything on packaging, outdoors, or likely to be handled, raise the error-correction level. Level H tolerates roughly 30% damage and is what makes a centre logo overlay viable — at the cost of a denser code for the same data.

Why a code is a link you cannot read

A human cannot inspect a QR code before following it, which is the one security property that genuinely distinguishes it from a hyperlink. Attackers exploit that by covering legitimate codes with stickers on parking meters, restaurant tables and payment terminals.

The Analyze button applies structural heuristics to the URL you have entered — a raw IP address rather than a hostname, an unusual port, a shortener, punycode or lookalike characters in the domain, an unusual number of redirect parameters. It reasons about the shape of the URL only, entirely in your browser. It is not a reputation lookup and cannot tell you whether a site is currently malicious.

Error correction, and why the level matters

QR codes are defined by ISO/IEC 18004 and carry Reed–Solomon error correction, which is why a partially damaged or obscured code still scans. There are four levels, and the choice is a direct trade between resilience and data capacity:

Higher correction means more modules for the same payload, so the code becomes denser at the same physical size. That interacts badly with printing small, which is the most common real-world failure.

The quiet zone is not optional

The specification requires a clear margin of four modules on every side. Codes cropped tight to the pattern, or placed against a busy background, fail to scan even though they look complete. Most "it works on my screen but not on the poster" problems are a missing quiet zone.

Contrast and inversion

Scanners expect dark modules on a light background. Light-on-dark codes work with some readers and not others, and coloured codes need genuine luminance contrast rather than merely different hues — two colours of similar brightness will not decode reliably.

Shorter payload, easier scan

Capacity is not the constraint most people hit — module density is. A 300-character URL produces a far denser grid than a 40-character one, needing better optics and more light. Shorten the URL before generating, not after someone reports it failing.

A printed code is an unverifiable link

This is the genuine security property of QR codes and it deserves stating plainly: a human cannot read one. Clicking a link on a screen at least allows a glance at the destination; scanning a code is trusting whatever it contains, and attackers exploit this by placing stickers over legitimate codes on parking meters, restaurant tables and payment terminals.

The structural hints this tool shows on an encoded URL cover the patterns worth noticing — a raw IP address instead of a hostname, an unusual port, a URL shortener hiding the real destination, punycode or lookalike characters in the domain, or an excessive number of redirecting parameters. These are heuristics about the URL's shape, computed locally; they are not a reputation lookup and cannot tell you whether a site is currently malicious. Always verify an unfamiliar destination independently before scanning a code you did not create.

Barcodes are a different problem

One-dimensional barcodes encode far less — typically 8 to 20 digits — and each symbology has strict rules that are easy to violate accidentally. EAN-13 and UPC-A include a check digit computed from the others, so a transposed digit produces a barcode that either fails validation or, worse, scans as a different product. Code 128 accepts full ASCII; Code 39 accepts a restricted set and produces noticeably wider output for the same data.

The practical constraints are physical: a barcode needs adequate width and a minimum bar thickness for the intended scanner, and vertical height affects nothing except how easy it is to aim. Scaling a barcode down to fit a label is the usual cause of unscannable output.

Generated in your browser

The content encoded into a code is frequently a signed URL, a one-time enrolment link, a device provisioning token or a payment reference. Generation here happens entirely in the page, so the payload is never transmitted and the downloadable image is produced locally.

Production-Grade Generation (Vulnerability Context)

Layerbit's code synthesizer converts your text or URLs into high-fidelity, machine-readable formats. Unlike consumer generators, this tool performs all rendering inside your browser's local memory, guaranteeing absolute privacy for sensitive serial numbers or internal URLs. This makes it ideal for generating test cases of malicious or internally sensitive data without risk.

Deployment changelog