Build the WIFI: payload that joins a network, with the escaping rules applied for you
The tool loads here. It needs JavaScript, because the work happens on your device.
Your files and your privacy
The network name and password build the payload in this browser tab and are never
uploaded; the image is drawn on your device and nothing is kept between visits. What does
leave your control is the printed code: it carries the password in plain text, readable by
anyone who can photograph it, so treat the printed sheet as you would the password written
on a card.
What this tool does
Make a QR code that a phone camera can use to join a wireless network. The network name,
security type, password and hidden flag are assembled into the WIFI: payload, with the
punctuation that format treats as structure escaped first.
It assembles the WIFI: payload that most phone cameras act on — authentication type,
network name, password and hidden flag — and encodes the finished string as a QR code. The
format uses punctuation as structure, so a semicolon, colon, comma, quotation mark or
backslash inside your network name or password is escaped before it goes into the payload,
and the panel says when that happened. The complete payload is printed under the preview,
so you can read exactly what you are about to put on a wall.
How to use it
Choose Wi-Fi as the code type and enter the network name exactly as the router
broadcasts it, including capitalisation.
Pick the security type: WPA covers WPA2 and WPA3, WEP is the obsolete scheme, and the
open option removes the password field.
Type the password, and tick the hidden box only if the network does not broadcast its
name.
Read the payload box and the notes above it, then export and test by joining from a
phone that is not already on the network.
Example use cases
A card on a café table that puts guests on the guest network without reading out a long
password.
A welcome sheet in a holiday let, where the password is long and the guests are tired.
A notice at an office reception desk pointing visitors at an isolated guest network.
Supported input and output
Accepts
Network name (SSID), password, and one of WPA, WEP or open
A hidden-network flag, emitted only when you tick the box
Produces
PNG or SVG of the QR code, at your chosen size and colours
The WIFI: payload as plain text, copyable from the panel
What this tool will not do
Only the three authentication types the format defines are offered: WPA, WEP and open. A
network needing a username, certificate or RADIUS server cannot be represented at all.
Nothing is verified. A mistyped password is encoded faithfully, and the mistake only
appears when someone tries to join.
The code is static: change the wireless password and every code you printed is dead,
with no way to update them.
The payload holds the password in plain text. That is inherent to the format, not a
choice made here, and it cannot be encrypted.
Common mistakes
Hand-writing the payload elsewhere. A password of p;w written unescaped ends the field
early and the rest is discarded, so the code scans perfectly and joins nothing; here it
is written as p\;w and a note says so.
Leaving an all-hexadecimal network name unquoted in a payload built by hand. A name such
as 1234abcd is read by many decoders as hex-encoded bytes, so the phone looks for a
different network; an even-length hex-looking value is quoted here to keep it literal.
Leaving the security type on WPA for a network with no password. The code then tells the
phone to expect a key that is not there; choose the open option so the password field is
omitted.
Printing a code for the main network rather than an isolated guest one. Everyone who can
see the poster can reach whatever else sits on that network.
Technical notes
The payload is assembled field by field — T: for the authentication type, S: for the
network name, P: for the password when the type is not open, H:true when the network is
hidden — joined with semicolons and closed with the double semicolon the format requires
as a terminator. Each value passes through an escaper that puts a backslash before a
backslash, semicolon, comma, colon or quotation mark, because all five are structural
here. A value made entirely of hexadecimal digits with an even length is additionally
wrapped in double quotes, since unquoted it would be read as hex-encoded bytes.
Frequently asked questions
What does a Wi-Fi QR code actually contain?
The network name, the authentication type and the password, as readable text. Anyone who
photographs the code can recover the password, so a printed code is a written-down
password in a different shape.
What happens if my password contains a semicolon or a colon?
It is escaped with a backslash before being written into the payload, and a note above
the preview tells you. Unescaped, the semicolon would end the field and the rest of the
password would be thrown away.
Why is my network name shown in quotation marks?
Because it is made only of hexadecimal digits and has an even length. Unquoted, a value
like 1234abcd is treated by many readers as hex-encoded bytes, so the quotes force it to
be read literally.