WiFi QR Code Generator
Type the network name and its password and the code is on the first screen, redrawing as you type, with no button to press and no account to make. The string inside it is the WIFI URI that phone cameras act on, written the way the format requires: a backslash, a semicolon, a comma, a colon or a double quote inside your name or password is escaped, a value that is nothing but hex digits is wrapped in quotes so a phone cannot read it as raw bytes, an open network leaves the password field out instead of sending an empty one, and the hidden flag is always stated rather than left to a guess. Those are the four things that make a generated code scan and then join the wrong network, or nothing at all. The four cells under the stage carry the security type, the hidden flag, the module count and the error correction level, and every assumption the payload made is listed underneath in plain words. The payload printed under the code has the password elided until you press Show, because the screen is the one place it does not need to be. Download the symbol as a PNG at ten pixels per module or as an SVG that stays sharp at any size, copy the payload with or without the password, or print the card: the printed page is the card alone, with the network name and password beside the code for anyone whose phone is too old to scan it. The name, the security type, the hidden flag and the correction level are remembered in this browser so the page opens where you left it. The password never is, and neither the name nor the password is uploaded, measured or sent anywhere.
security WPA/WPA2 password •••••••• hidden no
WIFI:T:WPA;S:Cafe Guest;P:...;H:false;;error correction M, 44 bytesCovers WPA and WPA2, and a WPA3 network that still takes a passphrase. The password is 8 to 63 characters. Recovers about 15% of a damaged code. The usual choice for a printed card.
The card
Print this and the code goes on the wall with the name and password beside it. Printing gives you the card alone, not the page around it.
Scan to join the Wi-Fi
- Network
- Cafe Guest
- Security
- WPA/WPA2
- Password
- latte123
- Hidden network
- No
- Point a phone camera at the code and tap the notice that appears.
- On an older phone, open Wi-Fi settings, choose the network by name and type the password below.
Worked examples
- a phone joins on scan
- the payload omits P
- escaped in the payload
- the payload sets H:true
Common questions
- How do I make a QR code for my WiFi network?
- Type the network name exactly as the router shows it, capital letters included, then the password, and the code is already drawn. Leave the security on WPA unless the network is genuinely old or genuinely open. If the network name is not broadcast, set Hidden to Yes so the phone knows to look for a name it will not see in a scan. Then download the PNG, or print the card and put it where guests can reach it. Nothing is uploaded and nothing asks you to sign in.
- Will the code work on an iPhone and on Android?
- The string the code carries is the WIFI URI format both platforms read: WIFI:T:WPA;S:name;P:password;H:false;; with the fields in that order. The iPhone Camera app has read it since iOS 11 and recent Android cameras read it too, both showing a prompt to join rather than opening a browser. An older phone needs a QR scanner app, which reads the same string. That is also why the card prints the name and the password beside the code: if a phone will not scan, the details are right there to type in.
- What happens if my network name or password contains a semicolon, a comma or a backslash?
- It is escaped, which is the part most generators get wrong. Inside a WIFI URI the characters backslash, semicolon, comma, colon and double quote all end a field unless a backslash is put in front of them, so a network called Cafe;Guest has to travel as S:Cafe\;Guest or the phone reads the name as Cafe and treats Guest as a broken field. The backslash is escaped first, so a name containing both a backslash and a semicolon survives intact. A name or password made only of hex digits, say 1234ABCD, gets wrapped in double quotes instead, because the format lets a reader treat an unquoted hex string as raw bytes. Whatever escaping was applied is named in the notes under the code, and the printed card always shows the name and password as you typed them, never with the escapes in.
- Is my WiFi password sent anywhere, or saved on this computer?
- No. The encoding runs in this tab: there is no upload, no request to any server and no analytics event carrying what you typed. The network name, the security type, the hidden flag and the correction level are remembered in this browser so a reload opens where you left off, and the password is deliberately left out of that record, so coming back shows your network name with an empty password box and a line saying why. A preset from a linked page can set the security type, the hidden flag and the correction level, and can never set a name or a password. Start over, at the top of the page, forgets the lot. The password is still inside the code itself, which is the point of the tool: anyone who can photograph the printed code can join the network, so treat the printout the way you would treat the password written on a card.
- Why was my password or network name refused?
- Every limit here comes from the WiFi standards rather than from the page. A network name holds at most 32 bytes, and bytes are not characters: sixteen accented letters already fill it, so an over-long name is refused with its measured byte count rather than quietly shortened. A WPA or WPA2 password is 8 to 63 characters, or exactly 64 hex digits when you are pasting a raw key off the router. A WEP key is 5 or 13 characters, or 10 or 26 hex digits. A tab, a newline or any other control character is refused with its character code, because it cannot survive the trip through a printed code. Each refusal says what is wrong and what to do, and it never returns a shortened version of what you typed.
- What do L, M, Q and H change?
- They are the error correction levels, and they decide how much of a damaged code can still be read: roughly 7% at L, 15% at M, 25% at Q and 30% at H. More correction means more modules, so the same network details make a bigger, denser symbol at H than at L, and the module count in the readout shows exactly how much bigger. M is the sensible default for a card behind glass or on a fridge. Choose Q or H for a sticker that will get scuffed, or for a code printed small. Choose L only when you need the least dense symbol you can get.
- What does the hidden setting do?
- It sets the H field to true, which tells the phone the network does not broadcast its name, so it should try to connect to a name that will not appear in a scan of the air. Leave it on No for an ordinary network. Setting it on a network that is not hidden is not harmful, but it is one more thing a phone has to act on, and some phones will still ask you to pick the network by hand either way.
- Can I print a card for guests?
- Yes, and printing gives you the card alone rather than the whole page: the code, the network name, the security type, the password and two lines telling a guest what to do with it. Everything else on the page is hidden by the print stylesheet. If you want to set the card in something else, download the SVG instead, which is a vector file with a four module quiet zone around the symbol and no trace of the network name or the password in its markup.
The payload follows the WIFI URI format that Android and iOS cameras read, with semicolons, commas and backslashes in your SSID or password escaped. The code is drawn in your browser and the password is never sent anywhere, though anyone who can see the printed code can join the network.