CLIENT-SIDE WIFI QR DECODER

Scan WiFi QR Code
Reveal Network Passwords Safely

Parse WiFi network credentials, SSID, and WPA/WPA2 passwords locally on your device.

WPA/WPA2/WEP Parsing
Instant Password Reveal
100% In-Browser Privacy
Unlimited Local Scans
Drop QR Image
or click to browse
INITIALIZING...
Payload Decrypted
Local Parse
Network Name (SSID)
{{ wifiData.ssid }}
Password
{{ hasPassword ? (isPassHidden ? '********' : wifiData.pass) : t('qr.scanQrWifi.noPassword', 'No Password') }}
Security Protocol
{{ wifiData.type }} {{ t('qr.scanQrWifi.secured', 'Secured') }} {{ wifiData.hidden ? t('qr.scanQrWifi.hiddenNetwork', '(Hidden Network)') : '' }}
Not a standard WiFi QR
{{ rawData }}
{{ statDecrypted }}
Networks Decrypted
{{ statOther }}
Other QRs Read
ZXing
Decoding Engine
100%
Local Privacy

The Nexus Ring

A visually stunning circular viewport. When scanning, the ring glows with a radar sweep animation, providing an immersive, sci-fi inspired interaction.

Decryption HUD

Instead of dumping raw text, the HUD parses the specific `WIFI:` string format and cleanly separates the SSID, Password, and Security type.

Client-Side Processing

Your WiFi passwords are highly sensitive. We utilize the html5-qrcode library to decode images entirely within your browser's RAM, ensuring zero data transmission.

Smart Privacy Blur

By default, the extracted WiFi password is rendered with a heavy CSS blur effect. This prevents shoulder-surfing if you are scanning in a public space.

Hybrid Ingestion

Drag and drop a screenshot of a QR code from your desktop, or switch to Camera mode to use your device's webcam to scan physical codes dynamically.

Haptic Audio

Using the Web Audio API, the system synthesizes a satisfying, high-tech 'Access Granted' chime the exact millisecond a code is successfully deciphered.

{{ toastMsg }}
Recommended for you

Tool Title

Tool Description

{{ isOutOfCredits ? t('quota.outOfCredits', 'Out of Credits!') : t('quota.title', 'Your Quota') }}

{{ t('global.loading', 'Fetching quota data...') }}

{{ badgeText }}
{{ quotaData.usedPlan.toLocaleString() }}
{{ t('quota.consumption', 'Consumption') }} / {{ quotaData.totalPlan.toLocaleString() }}

{{ descText }}