WiFi QR Code Generator
Make a WiFi QR code guests join in one scan. Escapes ; : , " \ correctly, checks the 32-byte name and password limits, and prints a card with the password.
- Runs in your browser
- Your data never leaves your browser
- Free · No Sign-Up
Scan with WeChat to share this tool
Examples, details and FAQ Worked examples, how it compares with other tools, and answers to common questions.
What the Code Contains
A Wi-Fi QR code holds one line of text that starts with WIFI:. The format comes from the ZXing project’s Barcode Contents page, and the Wi-Fi Alliance later wrote it into section 7 of the WPA3 Specification v3.5 as the WIFI URI. The tool writes the fields in the order of that specification:
| Field | Written as | Meaning |
|---|---|---|
T | WPA, WEP or nopass | Security type. The WPA3 specification sets WPA for every password network, WPA2 and WPA3 alike. |
R | 1 (WPA3 only) | Transition Disable bitmap, bit 0 = WPA3-Personal: phones that support it will not fall back to WPA2 on this network. |
S | the name | SSID, escaped. |
H | true | Hidden network, so the phone also probes for a name that is not broadcast. |
P | the password | Escaped; left out for an open network. |
ZXing escapes five characters with a backslash: \, ;, ,, " and :. Android’s parser in the AOSP source (WifiUriParser) removes those backslashes again. When Android shares a network from Settings, it writes the same format (AOSP WifiNetworkConfig.getQrCode()).
Examples
A guest network. Name Guest-WiFi, password welcome-2026, WPA. The tool writes WIFI:T:WPA;S:Guest-WiFi;P:welcome-2026;; and reports version 3 (29 × 29 modules) at level M. With the default 1024 px setting, the PNG is 999 × 999 px: 37 modules including the 4-module quiet zone, 27 px each.
Punctuation. Name Cafe;Guest, password p@ss:w,d. The string becomes WIFI:T:WPA;S:Cafe\;Guest;P:p@ss\:w\,d;;. Without the backslash, a phone reads the name as Cafe, because ; ends a field. The tool also notes that a reader following only the WPA3 specification would not remove the backslashes: the specification percent-encodes ; instead, and Android does not decode percent signs.
WPA3 only. Name Home, password correct horse, WPA3 only: WIFI:T:WPA;R:1;S:Home;P:correct horse;;, the same string as example 2 in section 7.3 of the specification. The 8–63 character check is skipped, because WPA3’s SAE handshake accepts any password.
A password that cannot be right. 1234567 on a WPA network gets a warning: a WPA2 passphrase is 8 to 63 printable ASCII characters, or the key itself as 64 hex digits (the limits in hostapd’s sample configuration). The code is still drawn, in case the router runs WPA3 only.
A name that is too long. 咖啡店二楼访客无线网络 is 11 characters but 33 bytes in UTF-8. An SSID is at most 32 bytes (IEEE 802.11), so no router broadcasts that name, and the tool says so instead of drawing a code that can never connect.
Which Phones Read It
- Android. On Android, Settings › Network & internet › Internet › your network › Share shows the network as a QR code (Google help). Samsung’s connection guide has a QR code icon on the Wi-Fi screen for scanning one. The AOSP parser accepts
WPA,SAE,WEPandnopass, readsR:1, and rejects a password network with noPfield. - iPhone. Apple’s iPhone User Guide (Find and share your Wi-Fi password) has a Show Network QR Code button in the Passwords app that others scan to join. Apple does not publish which
WIFI:fields the Camera reads, and we have not tested an iPhone for this page. - Other brands. We found no Xiaomi or Huawei documentation of the fields they accept. Test with the phones your guests use.
The Printable Card
The card is 100 mm wide. Its height grows with long names and passwords, which wrap and are never cut. The PNG is 1200 px wide, about 305 dpi, and each module is a whole number of pixels. The SVG keeps its 100 mm size when printed. Names and passwords use a monospaced font, and spaces in a password print as ␣. Untick Print the password on the card to print the code and name only.
A printed password belongs to a guest network. Anyone who photographs the card can read the password with any QR reader, so keep the network your own devices use off the card.
How It Differs from Other Generators
We ran the same inputs through other generators on 2026-10-01:
- qifi.org runs in the browser and escapes correctly. With the name
咖啡店二楼访客无线网络, it writes one byte per character, the low byte of each UTF-16 unit, so zxing-cpp read the name back as紡洛|ソ「狒Qワ. It gave no length warning. - GenQRCode sends the password in a JSON request to its
/previewendpoint before it shows the preview.
This tool keeps the name in UTF-8, escapes it the way Android’s parser expects, checks the 32-byte and password limits before drawing, and uploads nothing.
Limits
- No WPA2-Enterprise (802.1X) fields. ZXing lists
E,A,IandPH2for them, the WPA3 specification does not define them, and phones that support them differ. - No SAE-PK public key (
K) or SAE password identifier (I). - Hex-looking names such as
CAFE1234are written as typed. ZXing’s old Android app read an all-hex SSID as raw bytes and suggested quotes, but the current branch of Android’s WifiUriParser keeps the quotes as part of the name. - The quiet zone is fixed at 4 modules, the minimum ISO/IEC 18004 requires. For a code for a link or text, use the QR Code Generator. For a strong password to print, use the Password Generator.
FAQ
Is my Wi-Fi password sent anywhere?
No. The string and the QR code are built in your browser with the node-qrcode library that this site serves from its own /vendor folder. The page stores nothing you type, and this tool page loads neither Google Analytics nor AdSense, because it handles a network password.
Which security option should I pick?
WPA / WPA2 / WPA3 for almost every home and office router; it writes T:WPA, which the WPA3 specification uses for every password network. Pick WPA3 only if the router runs WPA3-Personal with no WPA2 fallback: the code adds R:1, which tells phones that support it to use WPA3 for this network from the first connection. Pick No password for an open network.
Why does the tool refuse a WPA network without a password?
Android's own parser (WifiUriParser) throws such a code away as an invalid format, so phones would show nothing or an error. If the network really has no password, choose No password (open).
My network name is in Chinese, Japanese or Korean. Will it work?
Yes, if the name fits in 32 bytes of UTF-8, which is about 10 CJK characters, and the router broadcasts the name in UTF-8. The byte counter next to the field shows the length, and the tool warns above 32.
Does the code work for a hidden network?
Yes. Tick Hidden network (name not broadcast) and the code gets H:true, so the phone also looks for a network whose name the router does not broadcast. The printable card then shows the line Hidden network under the name.
Can a laptop use the code?
A laptop without a QR scanner needs the name and password typed. That is what the printable card is for: it prints both under the code in a monospaced font, with spaces shown as ␣.