QR Code für eine einfache WLAN Anmeldung selber erstellen - mit Python

QR Code für eine einfache WLAN Anmeldung selber erstellen - mit Python

Einleitung

Wie viele von euch haben schon einmal einen QR-Code genutzt, um sich mit einem WLAN zu verbinden?

Diese Möglichkeit begegnet uns häufig bei öffentlichen Netzwerken oder in Firmen. Natürlich ist dies meist nur für Gäste gedacht – mein internes WLAN sollte ich lieber mit einer sicheren Authentifizierung schützen.

Auch auf den WLAN-Routern für zu Hause ist oft schon ein QR-Code aufgedruckt. Allerdings sollte man hier unbedingt die SSID und das Passwort ändern, anschließend funktioniert der QR-Code natürlich nicht länger.

WLAN QR Code selber generieren

Wie kann ich also selbst einen QR-Code für mein WLAN erstellen?

Online ohne Aufwand

Eine schnelle Google-Suche liefert zahlreiche kostenlose Online-Generatoren. Aber wer möchte schon sein WLAN-Passwort auf einer fremden Webseite eingeben?

"Es ist doch nur ein einfaches Passwort, das ich sonst nirgends verwende", könnte man denken. Und woher sollen die wissen, wo mein WLAN verfügbar ist?

Tatsächlich gibst du nicht nur dein Passwort, sondern auch deine SSID an. Diese enthält zwar oft keine eindeutige Information über deinen Standort, aber Dienste wie WiGLE sammeln Standorte von SSIDs weltweit.

Ist deine SSID einzigartig, stehen die Chancen gut, dass du sie bei WiGLE finden kannst. Hast du hingegen eine generische SSID wie "Gast"? Dann könnte es passieren, dass sich andere nicht verbinden können. Wer mit einer identischen SSID und einem anderen Passwort bereits verbunden war, versucht es automatisch mit diesen Daten. Natürlich erfolglos!

Wie kann ich mir also sicher und einfach einen QR-Code erstellen?

QR Code lokal und offline erstellen

Ganz einfach – mit Python! Python wird von vielen Entwicklern und Technikern genutzt und ist auf macOS bereits vorinstalliert. Was uns noch fehlt, ist die Bibliothek QRCode.

Diese Bibliothek kannst du ganz einfach über das Terminal installieren:

pip3 install qrcode

 

Mit dem folgenden Skript kannst du dir dann deinen eigenen QR-Code generieren.

import qrcode
# Benutzereingaben
ssid = input("SSID: ")
psk = input("WPA2 PSK: ")
# QR-Code-Daten erstellen
wifi = "WIFI:S:" + ssid + ";T:WPA;P:" + psk + ";;;"
# QR-Code generieren
img = qrcode.make(wifi)
# QR-Code speichern
img.save(ssid + '.png')
Du kannst dieses Skript direkt in Python eingeben oder es in einer .py-Datei speichern und ausführen.

Das Ergebnis

Ein QR-Code im PNG-Format, den du nun zum Verbinden mit deinem WLAN nutzen kannst.

Wichtiger Hinweis: Das Passwort wird im Klartext im QR-Code gespeichert. Der QR-Code schützt also nicht vor dem Zugriff anderer auf dein Passwort.

Bunter Barcode?

Natürlich kann das Python Skript noch überarbeitet werden. Mit folgendem Python Code kannst du den QR Code noch anpassen. Es gibt drei Parameter:

  • error_correction
    • Fehlerkorrektur, hiermit kann die Redundanz des Barcodes angepasst werden. Eine höhere Fehlerkorrektur sorgt für eine bessere Lesbarkeit, aber auch für größere Barcodes.
    • Mögliche Parameter:
      • _L für 7%
      • _M für 15%
      • _Q für 25%
      • _H für 30%
  • box_size
    • Mit diesem Parameter kann die Größe der einzelnen Boxen im QR Code angepasst werden.
  • border
    • Mit diesem Parameter kann die Größe des weißen Randes um den QR Barcode angepasst werden.

Beim erstellen kann anschließend noch die Farbe des Codes und Hintergrund angepasst werden. Zur Lesbarkeit des Barcodes sollte ein gewisse Kontrast zwischen dem Hintergrund und QR Code bestehen.

import qrcode

#request information
ssid = input("SSID: ")
psk = input("WPA2 PSK: ")

#create variable for QR code
wifi = "WIFI:S:" + ssid + ";T:WPA;P:" + psk + ";;;"

#create qr code object
qr_object = qrcode.QRCode(
    version=1,
    error_correction=qrcode.ERROR_CORRECT_H, #change error correction _L 7% _M 15% _Q 25% _H 30%
    box_size=10, #change size of the QR code boxs def. 10
    border=10, #change size of the border around the QR code def. 4
)

qr_object.add_data(wifi)
qr_object.make(fit=True)
img = qr_object.make_image(fill_color="green", back_color="blue")
img.save(ssid + '.png')

Die Auswahl der Farben sollte vielleicht etwas überdachter ausgewählt werden, als in diesem Beispiel.

Zurück zum Blog

Hinterlasse einen Kommentar

Bitte beachte, dass Kommentare vor der Veröffentlichung freigegeben werden müssen.