WiFi QR Code Generator
Create a QR code that lets people join your WiFi network by scanning it, without typing the password. Built in your browser.
WPA passwords have 8 to 63 characters.
Choose Yes if the network does not broadcast its name.
Higher levels survive more damage but make the code denser.
PNG, JPEG or WebP up to 1 MB. The file stays on your device. Check with a phone that the code still scans.
The password is stored in the code in readable form. Anyone who scans or photographs the code can read it.
Fill in the form to see the QR code.
Everything is generated in your browser; your data and logo are not uploaded.
How it works
Enter the network name, pick the security type, type the password and say whether the network is hidden. The code appears as you type. A scanning app that understands the format offers to join the network, so a guest does not have to type the password. Everything is built in your browser; the name and the password are not uploaded.
The code holds plain text in the format documented on the ZXing project's "Barcode Contents" wiki page:
WIFI:T:WPA;S:mynetwork;P:mypass;;
The fields
- T is the security type: WPA, WEP or nopass (open network). The format also lists WPA2-EAP, which this tool does not write.
- S is the network name (SSID). It is required.
- P is the password. It is left out for an open network.
- H is written as
H:trueonly when you mark the network as hidden.
The text ends with two semicolons. The WPA option is what you pick for WPA2 networks; WPA3 is not written as a separate type.
With No password selected, anything typed earlier in the password field is left out of the code, so an open network never carries a password by accident. For WEP the tool applies no key-format rule beyond "not empty and no control characters"; enter the key as your router shows it.
Escaping
Backslash, semicolon, comma, double quote and colon have a meaning inside the format, so each of them gets a backslash in front. Without it, a semicolon in a password would end the field early and everything after it would be misread. The tool does this for the name and the password.
Limits the tool enforces
- Network name: 1 to 32 bytes in UTF-8.
- WPA password: 8 to 63 bytes. WEP has no length check.
- No line breaks or other control characters in either field.
- A password is required unless the network is open.
Examples
The payloads below are exactly what the tool writes. A backslash in the text is part of the escaping.
| Network | Security | Password | Hidden | Text in the code |
|---|---|---|---|---|
| mynetwork | WPA | mypass123 | No | WIFI:T:WPA;S:mynetwork;P:mypass123;; |
| mynetwork | WPA | mypass123 | Yes | WIFI:T:WPA;S:mynetwork;P:mypass123;H:true;; |
| mynetwork | No password | (ignored) | No | WIFI:T:nopass;S:mynetwork;; |
| "foo;bar\baz" | No password | - | No | WIFI:T:nopass;S:\"foo\;bar\\baz\";; |
| a:b,c | WPA | p;w\d:",12 | No | WIFI:T:WPA;S:a\:b\,c;P:p\;w\\d\:\"\,12;; |
| Cafe Guest | WPA | Coffee&Cake2026 | No | WIFI:T:WPA;S:Cafe Guest;P:Coffee&Cake2026;; |
The first row is the default case. The fourth row is the escaping example from the ZXing wiki. In the last row, the space in the name and the ampersand in the password need no escaping, because they have no special meaning in the format.
Things to watch for
- The password is readable in the code. Anyone who can scan or photograph the code can read it. If you print it in a public place, you have published the password. A separate guest network, when your router offers one, limits what a shared code gives away.
- The password field is not masked. What you type is shown on screen, so check that nobody is looking over your shoulder, and paste the password when you can instead of retyping look-alike characters such as l, I and 1.
- Regenerate after a password change. The code does not update itself, and an old printout silently fails or connects with the old password.
- Choose the type that matches your router. A wrong security type, or a hidden flag that does not match the network, is one possible reason a code reads fine but does not connect. WEP is an old, weak security type; the tool can write it, but a newer type protects the network better if your router offers one.
- Test on a phone that has not joined the network. A device that already knows the network can look as if it worked. Forget the network first, or use another phone.
- Support depends on the scanner. The format is a long-established convention rather than a rule every camera app follows. Some apps join directly, some show the text. Test with the devices your guests use.
- Non-ASCII names. Names and passwords with letters such as ş or ü are written as UTF-8. We have not tested individual readers with them, so scan a sample before printing.
- Contrast and size. Keep a dark code on a light background and the white margin around it. A logo is optional and raises error correction to H; if you add one, scan the result again.
- Keep the SVG. Print from the SVG for a sharp result at any size, and keep the file if you need the code on several signs.
Frequently asked questions
Last updated: 10/11/2026