オフラインでWi-Fi QRコードを作る:パスワードは端末から出ません
WiFi QRはCore Imageを使ってiPhoneやiPadの中でコードを描くので、ネットワーク名もパスワードもWebサイトには送られません。生成、表示、保存、スキャン、最初の書き出しまで、通信なしで動きます。
Wi-Fi QRの作成サイトは、フォームにパスワードを打ち込んで、サイトが黙っていてくれることを祈る形がほとんどです。もう信用するのをやめました。機内モードにしても生成するタブはコードを描いてくれました。中身はただの文字列で、それを端末内で四角い模様に変えているだけだからです。
コードの中身
文字列は標準のWi-Fi形式です。WIFI:T:にセキュリティ、S:に名前、P:にパスワードを続け、最後に;;を付けます。特殊文字にはバックスラッシュが入ります。Casa Rossiという家庭用ネットワークでパスワードがsole;mare:2024なら、アプリが作る文字列は次のとおりです。
WIFI:T:WPA;S:Casa Rossi;P:sole\;mare\:2024;;
長さは44バイトです。QRの容量表でいうと、画面プレビューの訂正レベル(M)なら33 x 33モジュール、書き出し用のレベル(H)なら37 x 37に収まります。Hは汚れや破れに強く、余白のデータが多くなります。こんな計算を自分でする必要はありません。ただ、小さな四角ひとつでサーバーが一切関わらないことが伝わるとわかりやすいので記載しています。
| ケース | 文字数 | M での大きさ | H での大きさ |
|---|---|---|---|
| Casa Rossi、WPA、パスワード sole;mare:2024 | 44バイト | 33 x 33 | 37 x 37 |
同じ内容で隠しネットワークをオン(H:true;が加わる) | 51バイト | 33 x 33 | 41 x 41 |
| Cafe Guest、オープン(パスワードなし) | 28バイト | 29 x 29 | 33 x 33 |
通信なしで作る手順
- 生成するタブを開きます。ネットワーク名(SSID)を入力し、セキュリティ・タイプを選び、パスワードを入力します。隠しネットワークとカスタムタイトル(オプション)は高度なオプションの中にあります。
- 入力が正しくなると、フォームの上にコードが表示されます。それまではネットワーク情報を入力するよう案内が出ます。
- 履歴に保存で端末内に残せます。QRコードを共有するを押すとiOSの共有シートがPNGを渡してくれ、AirDropやファイルへの保存なら通信は一切要りません。
- 紙に貼るなら、歴史でネットワークをタップし、QRコードのエクスポートをタップします(プレミアムならテンプレートを使ってエクスポートとカスタム輸出に分かれます)。そこでエクスポートの形式をPDFにします。
それでも通信が発生する場面
無料版のWiFi QRにはGoogleの広告が出るので、読み込みのために通信します。購入と復元はApp Storeを使います。スプラッシュ画面のあとにトラッキングの許可も聞かれますが、断っても困ったことはありませんでした。ただし、ネットワークやパスワードがこれらに乗ることはありません。データはアプリ自身の保存領域にあり、iCloudもアカウントも使いません。
気になる点がひとつある。アプリはネットワークのパスワードをキーチェーンではなく、アプリのデータとして保存します。プレミアムのロックは、ネットワークを開く前にFace IDかパスコードを求めますが、これはアプリ内の関門であって暗号化ではありません。自宅のネットワークでは問題になりにくいが、会社のネットワークにはあまり向きません。
入れる前に確認したいこと
- 無料プランで保存できるのは3件、書き出せるのは合計1回で、小さな透かしが入ります。以降の書き出しには短い広告(通信が必要)かプレミアムが要ります。画面にコードを表示するだけなら回数制限はありません。
- バックアップも同期もありません。アプリを削除すると、保存したネットワークも消えます。
- 印刷したコードは固定です。あとから変更したり遠隔で無効にしたりはできません。ルーターのパスワードを変えて、新しく作り直してください。