Skip to main content
OpenQRS
Tools
Current language: English
100% Private

Wi-Fi QR code generator

100% Private & Local — Your data never leaves your browser. These QR codes are permanent and will never expire.

Wi-Fi settings

Case sensitive. Semicolons, colons, commas, quotes and backslashes are escaped for you.

Enter the network name (SSID) exactly as the router broadcasts it.

WPA3 networks use the same WPA token. The phone negotiates the actual handshake with the router.

WPA passphrases are 8 to 63 characters. WEP keys are 5 or 13 characters, or 10 or 26 hex digits.

Adds H:true so the phone searches for a network that does not broadcast its name.

Design

Module shape
Presets
Corner frame
Add a centre logo
Choose an image, or drop one herePNG, JPEG, WebP or GIF, up to 1000 KB

The image is read in this page and embedded in the code as a data: URL. It is not uploaded, and it stays inside the file you download.

More design options

The dark half of the code. Keep it well below the background in lightness.

Covers the quiet zone as well as the gaps between modules. A transparent background leaves it out of the file, so nothing is drawn with it.

Contrast 11.5:1 between the modules and the background.

Presets

PNG and WebP keep an alpha channel; the SVG simply omits the background rectangle. Whatever the code is placed on becomes the light half of the contrast.

Gradient

A gradient fills the dark modules only. Its lighter end sets the contrast a scanner actually gets, so both ends have to stay dark.

The second colour, used only while a gradient is selected. It is measured for contrast alongside the first.

45°

Degrees clockwise from a left-to-right sweep. A radial gradient spreads from the centre outwards, so the angle applies to a linear one only.

Module shape

Rounded shapes cover less of each cell. The centre stays covered, which is where a decoder samples, but a small print of a dense code reads more reliably as squares.

Corner frame

The ring of the three finder patterns.

Corner centre

The eye inside each finder pattern.

4 modules

The blank margin around the code, measured in modules. 4 is the specified minimum.

Higher recovery survives more damage and costs capacity, so the same content produces a denser symbol.

A logo sits at the centre and holds the level at H. Its width limit follows the symbol: 14% on the smallest code, 30% on a dense one.

Live preview & export

Export

Export

Raster, for screens

Complete the form to enable the downloads.

Export size and encoded text
Payload
Nothing encoded yet
Symbol
Not built yet
Recovery
Q

Waiting for input

Export size

Between 64 and 4096 pixels. Exporting at 1024 px.

Encoded text

A Wi-Fi QR code carries the network name, the password and the security type in one WIFI: string that phones read directly, with no website in between. iOS 11 and later and Android 10 and later join straight from the camera; older Android handsets need a scanner app that understands the format.

When someone scans it

The phone reads the network name and password and offers to join that Wi-Fi network. No browser opens and nothing is downloaded.

What the WIFI: string actually contains

The payload is a single line of text with a prefix and semicolon-separated fields, closed by two semicolons. A typical one reads WIFI:T:WPA;S:Cafe-Guest;P:flatwhite2019;; and that is the whole thing. It is not a URL and it resolves to nothing on the network.

The format comes from the ZXing barcode project rather than from a standards body, which is why it is described as a de-facto standard. Field order does not matter to a compliant reader, but the trailing pair of semicolons does: readers use it to mark the end of the record.

Characters that would otherwise be read as structure have to be escaped with a backslash. This page escapes them before encoding, and it escapes backslashes first so nothing gets double-escaped.

  • T: security type, one of WPA, WEP or nopass
  • S: the SSID, exactly as the router broadcasts it, including capitals
  • P: the passphrase, omitted entirely when the type is nopass
  • H: true only when the network is hidden
  • Escaped characters: backslash, semicolon, comma, colon and double quote

Which phones join without installing anything

iOS has read WIFI: codes from the stock Camera app since iOS 11, and Android since version 10. On an older Android build the camera will show the raw WIFI:… text or nothing at all, and the guest needs a scanner app that implements the format. That is the single most common reason a Wi-Fi code appears not to work.

There is no separate token for WPA3. Use WPA and the code works on WPA2, on WPA3 and on mixed transition-mode networks, because the phone picks the handshake once it sees the network. Some tools emit T:SAE for WPA3-only networks; parsers that do not recognise SAE fail silently, so this page does not offer it.

A hidden network needs H:true. Without that flag the phone scans the air for a matching SSID, finds nothing, and gives up without a useful error. Set the checkbox whenever the router has SSID broadcast turned off.

Printing a network card that keeps working

Wi-Fi payloads are short, so the symbol stays small. The example above is 41 bytes, which at level Q fits a version 4 symbol of 33 by 33 modules. Printed 30 mm wide including the quiet zone that is roughly 0.7 mm per module, comfortably inside what a phone camera resolves across a table.

Level Q is the starting recovery level here because these cards live on tables, get spilled on and get laminated with a glare. Q adds enough recovery codewords to restore about a quarter of the codewords in the symbol, and the payload is small enough that the extra recovery data costs almost nothing in size.

The password is stored as readable text inside the symbol. Anyone who photographs the card can decode it with any scanner, so put visitors on a guest network with its own passphrase rather than encoding the one that also reaches your printers and network storage.

Questions and answers

Is the password hidden inside the QR code?

No. A QR code is an encoding, not encryption. The passphrase sits in the P: field as plain text and any scanner app will display the whole WIFI: string. Treat a printed Wi-Fi code as being as public as a password written on the wall.

Does a WPA3 network need a different setting?

No. Choose WPA. The same token covers WPA, WPA2, WPA3 and transition mode, and the phone negotiates the real handshake when it connects. On iOS, WPA3 support arrived with iOS 13.

What if my SSID or password contains a semicolon or a backslash?

It is escaped automatically. The format reserves backslash, semicolon, comma, colon and double quote, and each one is prefixed with a backslash before encoding, with backslashes handled first so nothing is escaped twice. Type the values exactly as they appear on the router.

Can I change the Wi-Fi password without reprinting the code?

No. The passphrase is baked into the modules of the symbol, so rotating it means generating and printing a new code. That is also what makes the code permanent: it never calls a server, so it cannot be redirected, disabled or expire.

How a static QR code works

Every code on this site is static: the payload is written into the black and white modules themselves. Nothing is looked up when the code is read, no server of ours takes part, and no subscription holds the printed code up. The same property is the limit — once it is printed, what it contains cannot be changed.

Three things then decide whether a printed code reads: how many bytes the payload came to, which recovery level absorbs the damage, and how wide a single module ends up on paper. These guides work through each of them with the numbers.