WiFi 二维码生成
扫码即连 · 符合 ZXing 联盟标准 · iOS 11+ / Android 10+ 内置相机原生支持 · 微信 / 支付宝扫一扫均可识别
SSID/密码→连接二维码
扫码即连 · 符合 ZXing 联盟标准 · iOS 11+ / Android 10+ 内置相机原生支持 · 微信 / 支付宝扫一扫均可识别
· 家庭场景:贴在路由器旁,客人扫码自动连 WiFi,免去念长密码
· 咖啡馆 / 餐饮:印在桌牌 / 菜单上,顾客快速接入
· 企业 / 会议:会议室 WiFi 二维码,参会者一扫即连
· 格式标准:WIFI:T:WPA;S:ssid;P:password;;(ZXing 联盟规范)
· 兼容性:iOS 11+ 相机内置 / Android 10+ 全面支持 / 微信 / 支付宝扫一扫识别
了解工具定位 · 使用场景 · 对比优势
输入 WiFi 的 SSID 和密码,一键生成可直接扫码连接的二维码。餐厅、咖啡馆、酒店前台打印张贴,或分享给访客,免去手动输入密码的麻烦。所有数据在浏览器内处理,不上传服务器。
朋友或亲戚到家做客,问 Wi-Fi 密码是高频场景。口头说一遍容易记错大小写或特殊符号,手机截图又担心隐私泄露。使用本工具将 SSID 和密码生成二维码,打印贴在玄关或冰箱上,客人扫码即连,无需手动输入,省去反复沟通的麻烦。
咖啡馆、餐厅、理发店等线下门店,Wi-Fi 是留住顾客的基础服务。店员每次报密码影响工作效率,手写纸条易丢失。将门店 Wi-Fi 信息生成二维码,制作成桌牌或收银台立牌,顾客到店扫码自动连接,提升服务体验的同时减少人工成本。
公司前台每天要接待多位访客,逐一告知 Wi-Fi 密码既耗时又容易出错。不同部门可能使用不同 SSID,访客混淆后无法联网。将公司访客专用 Wi-Fi 生成二维码,打印在前台登记表或访客胸卡背面,访客扫码即连,提升接待效率与专业形象。
民宿或小型酒店住客办理入住后,常需通过短信或口头获取 Wi-Fi 密码,容易遗忘或输错。将客房 Wi-Fi 信息生成二维码,打印在房卡套或入住须知上,住客扫码即连,减少前台咨询量,提升入住体验与好评率。
线下沙龙、派对、团建等临时聚会,参与者需要快速联网。组织者现场口头报密码,声音嘈杂时不易听清。提前用本工具生成 Wi-Fi 二维码,投屏到现场大屏或打印在活动手册上,参与者扫码即连,避免因联网问题打断活动流程。
| 维度 | 本工具 | 竞品 A | 传统方法 |
|---|---|---|---|
| 数据隐私 | 纯浏览器端生成,WiFi 信息不上传服务器 | 部分在线工具需上传 SSID/密码至服务器生成二维码 | 需将密码告知他人或打印贴出,存在泄露风险 |
| 处理速度 | 输入后即时生成,无网络延迟 | 受网络和服务器负载影响,通常 1-3 秒 | 手动制作二维码或打印,耗时数分钟至数小时 |
| 离线可用 | 完全离线,断网环境下仍可生成 | 需要网络连接,断网无法使用 | 完全离线,但需额外软件或手工操作 |
| 生成格式 | 标准 PNG 格式二维码,通用性强 | 通常支持 PNG,部分支持 SVG 或 PDF | 格式取决于手工方式(手绘/打印/专业软件导出) |
| 操作步骤 | 仅需输入 SSID 和密码,一键生成 | 需填写 SSID、密码、加密类型等字段,步骤较多 | 需打开设计软件/手绘,步骤繁琐且易出错 |
| 适用场景 | 个人快速分享家庭/公司 WiFi | 需要批量生成或定制样式的场景 | 无网络环境或对二维码质量无要求的临时场景 |
上手步骤 · 输入输出 · 避坑提示
| 输入 | 输出 | 说明 |
|---|---|---|
| SSID: MyHomeWiFi 密码: 12345678 | 二维码图像(编码内容:WIFI:S:MyHomeWiFi;T:WPA;P:12345678;;) | 典型场景:家庭 WPA2 加密网络 |
| SSID: 咖啡厅-免费WiFi 密码: (留空) | 二维码图像(编码内容:WIFI:S:咖啡厅-免费WiFi;T:nopass;;) | 典型场景:无密码的开放式公共网络 |
| SSID: Guest_5G 密码: Aa@2024#Secure! | 二维码图像(编码内容:WIFI:S:Guest_5G;T:WPA;P:Aa@2024#Secure!;;) | 边界 case:密码含特殊字符 @#!,需正确编码 |
| SSID: (留空) 密码: 12345678 | 错误提示:SSID 不能为空 | 边界 case:SSID 为空,工具应阻止生成 |
| SSID: 办公室WiFi 密码: 这是长度超过63个字符的密码测试用例,用于验证工具是否能够正确处理超长密码输入,避免生成错误的二维码导致设备无法连接 | 错误提示:密码长度超过 63 个字符(WPA2 标准限制) | 易错 case:超长密码会被路由器拒绝 |
| SSID: \"Quoted\"SSID 密码: pass | 二维码图像(编码内容:WIFI:S:\"Quoted\"SSID;T:WPA;P:pass;;) | 边界 case:SSID 含双引号,需转义处理 |
| SSID: 隐藏网络 密码: hidden123 勾选:隐藏网络 | 二维码图像(编码内容:WIFI:S:隐藏网络;T:WPA;P:hidden123;H:true;;) | 典型场景:不广播 SSID 的隐藏网络 |
SSID: "Guest:Free"SSID: "Guest\:Free"(或直接避免使用这些字符)WiFi 二维码使用 WPA2-Enterprise 格式(RFC 2865),冒号和反斜杠是保留字符,需要反斜杠转义,否则二维码扫描器解析错误
密码: abc 123密码: "abc 123"(或确保密码字段整体被引号包裹)部分二维码生成器在生成 WIFI:S:SSID;T:WPA;P:password;; 格式时,密码中的空格会导致解析器只取空格前部分
路由器实际是 WPA2-PSK,但选择 "WPA" 类型选择 "WPA2"(或 "WPA/WPA2" 兼容模式)WiFi 二维码标准(ISO/IEC 18004)中 T 字段值 WPA 和 WPA2 不互通;选错会导致旧设备连接失败
SSID: "咖啡厅"(直接输入中文)SSID: "\u5496\u5561\u5385"(或使用 UTF-8 编码的二维码生成器)部分旧版二维码扫描器不支持非 ASCII 字符;使用 Unicode 转义序列可保证跨设备兼容性
仅输入 SSID 和密码,未勾选 "隐藏网络" 选项在二维码参数中添加 H:true(如 WIFI:S:MyNet;T:WPA;P:pass;H:true;;)隐藏 SSID 的网络需要 H:true 参数,否则手机不会主动发送探测请求,连接失败
密码留空但选择 WPA/WPA2 加密类型选择 "无加密"(T:nopass)类型,并留空密码字段WPA/WPA2 要求密码非空;空密码必须用 T:nopass 类型,否则设备会拒绝连接
SSID: "Home#WiFi"SSID: "Home%23WiFi"(或确保生成器自动处理)部分二维码生成器将 SSID 直接嵌入 URL 参数,而 # 和 % 在 URL 中有特殊含义,需编码
路由器有 2 个 SSID(MyNet-5G 和 MyNet),只生成一个二维码为每个频段分别生成二维码,或使用路由器双频合一功能5GHz 和 2.4GHz 频段的 SSID 可能不同;旧设备不支持 5GHz,混用会导致连接失败
公式推导 · 流程图解 · 依据出处
QR = encode( WIFI:S:<SSID>;T:<encryption>;P:<password>;; )
SSID — WiFi 网络名称(SSID)encryption — 加密类型:WPA/WEP/nopasspassword — WiFi 密码(nopass 时省略)QR — 生成的二维码图像数据SSID="CoffeeShop", 加密 WPA, 密码 "guest123"。编码字符串为 "WIFI:S:CoffeeShop;T:WPA;P:guest123;;"。二维码生成器将其转换为 QR 码矩阵(版本 2-M,25×25 模块),最终输出 PNG 图片。
遵循 ISO/IEC 18004 QR 码标准及 IEEE 802.11 WiFi 配置规范。适用于所有支持 WPA/WEP/无加密的 2.4GHz/5GHz 网络。不适用于企业级 802.1X 认证(需额外证书配置)或隐藏 SSID 网络(需手动添加 H:true 参数)。
3 种主流语言 · 复制即用
import qrcode
# 生成 WiFi 连接二维码(WPA/WPA2 加密)
ssid = "MyHomeWiFi"
password = "securepass123"
# WiFi 配置字符串格式:WIFI:T:WPA;S:<SSID>;P:<PASSWORD>;;
wifi_config = f"WIFI:T:WPA;S:{ssid};P:{password};"
# 生成二维码图像
qr = qrcode.QRCode(box_size=10, border=4)
qr.add_data(wifi_config)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save("wifi_qr.png")
print("二维码已保存为 wifi_qr.png")package main
import (
"fmt"
"github.com/skip2/go-qrcode"
)
func main() {
ssid := "Office_Guest"
password := "guest2024"
// 无加密网络使用 nopass
wifiConfig := fmt.Sprintf("WIFI:T:WPA;S:%s;P:%s;;", ssid, password)
// 生成 PNG 二维码
err := qrcode.WriteFile(wifiConfig, qrcode.Medium, 256, "wifi_qr.png")
if err != nil {
panic(err)
}
fmt.Println("二维码已生成: wifi_qr.png")
}// 使用 qrcode 库(npm install qrcode)
const QRCode = require('qrcode');
const ssid = 'Cafe_FreeWiFi';
const password = 'coffee123';
// 支持 WPA/WPA2 加密
const wifiConfig = `WIFI:T:WPA;S:${ssid};P:${password};;`;
// 生成 base64 图片数据
QRCode.toDataURL(wifiConfig, { width: 300 }, (err, url) => {
if (err) throw err;
console.log('二维码 base64 数据:', url.substring(0, 50) + '...');
// 可直接用于 <img src="...">
});
// 同步版本(Node.js 18+)
const generateQR = async () => {
const url = await QRCode.toDataURL(wifiConfig, { width: 300 });
console.log('二维码已生成');
};
generateQR();8 个高频疑问
「二维码」下的其他工具