Wi-Fi QR
Generator.
Turn your network name and password into a QR code that joins the network when scanned. Print it, tape it by the door, and stop reading a 30-character passphrase out loud across a room.
Corrections welcome — see our editorial policy.
Generated entirely in this browser tab. The password is never sent anywhere — there is no server request, and this page carries no analytics for what you type.
See what else is on your network.
Look up an IP address →What the code actually contains
A Wi-Fi QR code is not magic and it is not a link. It encodes a single short line of text in a format both Android and iOS understand:
WIFI:T:WPA;S:MyNetwork;P:sup3rsecret;;
That is the whole thing: a security type, the network name, the password, and a terminator. When a camera recognises that prefix it offers to join the network instead of opening a page. Nothing is looked up and no server is involved — the credentials are in the code itself.
Which leads directly to the most important thing to understand about it.
The code is the password
Anyone who can photograph the code has your Wi-Fi password. Not a token, not a time-limited invitation — the password itself, in plain text, recoverable by any QR scanner. A printed code on a café wall is the same as writing the passphrase on that wall in large letters.
Usually that is fine, because it is exactly what you meant: a guest network where the password is meant to be shared. It is not fine if the code is for the network your file server and printers sit on. If you are printing one for visitors, put visitors on a guest network first. Most consumer routers have supported one for a decade, and it is the difference between handing out access to the internet and handing out access to your devices.
The same logic applies to photographs. A code visible in the background of a posted photo is a shared password, and neither the person who posted it nor the people who can read it are likely to notice.
Escaping, and the failure you cannot see
Five characters have meaning in that format: the backslash, semicolon, comma, colon and double quote. If your network name or password contains any of them, they have to be escaped with a backslash, or the record ends early.
A network called Cafe;Guest that is not escaped becomes a code for a network called Cafe. A password containing a semicolon is silently truncated at that point. Both produce a QR code that scans perfectly and then fails to connect, and there is nothing to look at that would tell you why — the user is holding a picture of a square. This page escapes all five, and the escaping has its own tests, because it is the one bug in a tool like this that is genuinely invisible.
There is a related quirk with names made entirely of hex digits. An SSID like 0123456789 can be read by some clients as raw hexadecimal rather than as text, so the format allows wrapping it in quotes to force a literal reading. This page does that automatically and tells you when it has.
Choosing an error-correction level
QR codes carry redundancy, so a damaged or partly obscured code still reads. Four levels exist, recovering roughly 7%, 15%, 25% and 30% of the code respectively. Higher redundancy means more modules, which means a physically larger or denser code for the same information.
For a code that lives on a screen, the lowest level is fine. For one that gets printed, taped to a wall, and then rained on, scuffed, or partly covered by a coffee cup, the higher levels earn their extra size. The balanced level is a sensible default and is what this page starts on.
The other reason to raise it: if you plan to put a logo in the middle of the code, that logo is damage as far as the scanner is concerned, and you are spending redundancy to pay for it.
Why this runs entirely in your browser
Generating this code requires no network access at all — it is arithmetic over the text you typed. So there is no reason for the password to leave the page, and it does not. There is no API request, nothing is stored, and unlike our other tools this page deliberately records no usage analytics whatsoever, because any category worth counting would be derived from the credential itself.
This matters more than the usual privacy boilerplate. A great many Wi-Fi QR generators are web forms that post your passphrase to a server and send back an image. That server now has it, and so does anyone who ever compromises its logs. You can confirm what this page does: open your browser's network panel, generate a code, and watch that nothing is sent.
Printing one that actually scans
Two things break printed codes more than any other. The first is size. A code needs roughly two centimetres square at typical phone distance, more if it holds a long passphrase, because a longer password means a denser grid and smaller individual modules. If it must be read from across a room, it needs to be much larger than feels necessary.
The second is the quiet zone — the blank margin around the code. Scanners use it to find the code's edges, and a code cropped flush to its border, or printed on a busy background, often will not lock on at all. The download here includes the margin; keep it.
Print in plain black on white. Inverted codes (light on dark) are read by some scanners and not others, and coloured codes with insufficient contrast fail unpredictably. This is not the place to be decorative.
Common questions
Will this work on both iPhone and Android? Yes. Both read this format natively from the camera app — iOS since version 11, Android since 10, and via Google Lens on older versions.
My phone scans it but nothing happens. Usually the security type is wrong, or the passphrase contains a character that was not escaped by whatever generated the code. Check that the type matches what the router actually runs; a network set to WPA3 that the code declares as WEP will not join.
Can I make one that expires? Not with this format. The code is the credential, so the only way to revoke it is to change the Wi-Fi password. If you need time-limited guest access, that is a router feature, not a QR feature.
Does the code work if the network is hidden? Yes, if you tick the hidden option, which adds a flag telling the device to look for a network that does not broadcast its name. Without that flag, scanning a hidden network's code often does nothing.
Why is my code so much bigger than another generator's? Either a higher error-correction level or a longer passphrase. Both add modules. If you compare two codes for the same network, check the level before concluding one tool is worse than the other.
If you are setting up a network rather than sharing one, the MAC address lookup helps identify unfamiliar devices that appear on it, and the DNS leak test is worth running after joining any network you do not control.