Skip to main content

MiniWiFi - Python Wi-Fi Security Toolkit

Python Version License

MiniWiFi is a Python package for Wi-Fi network scanning and security testing. It provides a clean API for working with Wi-Fi networks programmatically.

Features

  • Scan for available Wi-Fi networks
  • Attempt to connect to networks using password lists
  • Pure Python implementation using pywifi
  • Clean API for integration with other tools
  • No external dependencies beyond pywifi

Installation

pip install miniwifi

Usage Examples :

  1. network_scanner.py :
from miniwifi import WifiScanner

scanner = WifiScanner()
try:
    networks = scanner.scan_networks()
    print("Available Networks:")
    for i, ssid in enumerate(networks, 1):
        print(f"{i}. {ssid}")
except Exception as e:
    print(f"Error: {str(e)}")
  1. wifi_cracker.py :
from miniwifi import WifiCracker
import sys

def main(ssid, wordlist_path):
    cracker = WifiCracker()
    try:
        result = cracker.crack(ssid, wordlist_path)
        if result['success']:
            print(f"\nPassword found: {result['password']}")
            print(f"Attempts: {result['attempt']} | Time: {result['elapsed']:.2f}s")
        else:
            print("\nPassword not found")
            print(f"Total attempts: {result['attempt']} | Time: {result['elapsed']:.2f}s")
    except Exception as e:
        print(f"\nError: {str(e)}")

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print("Usage: python wifi_cracker.py <SSID> <WORDLIST_PATH>")
        sys.exit(1)
    main(sys.argv[1], sys.argv[2])
  1. interactive_cracker.py :
from miniwifi import WifiScanner, WifiCracker

def display_networks(networks):
    print("\nAvailable Networks:")
    for i, ssid in enumerate(networks, 1):
        print(f"{i}. {ssid}")

def main():
    scanner = WifiScanner()
    networks = scanner.scan_networks()
    display_networks(networks)
    
    try:
        choice = int(input("\nSelect network number: ")) - 1
        ssid = networks[choice]
        wordlist = input("Enter wordlist path: ")
        
        cracker = WifiCracker()
        print(f"\nCracking {ssid}... (Press Ctrl+C to stop)")
        
        result = cracker.crack(ssid, wordlist)
        if result['success']:
            print(f"\nSUCCESS! Password: {result['password']}")
        else:
            print("\nPassword not found in wordlist")
        print(f"Attempts: {result['attempt']} | Time: {result['elapsed']:.2f}s")
    except (ValueError, IndexError):
        print("Invalid selection")
    except KeyboardInterrupt:
        print("\nOperation cancelled by user")
    except Exception as e:
        print(f"Error: {str(e)}")

if __name__ == "__main__":
    main()

License

MIT License - See LICENSE file

Author

MrFidal - mrfidal@proton.me Project URL: https://github.com/mr-fidal/miniwifi

Metadata

Release files for miniwifi 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for miniwifi 1.2.0
File Size Uploaded Provenance Actions
miniwifi-1.2.0.tar.gz 3.7 kB Without provenance Details for miniwifi-1.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for miniwifi 1.2.0
File Interpreter ABI Platform Actions
miniwifi-1.2.0-py3-none-any.whl Python 3 none any Details for miniwifi-1.2.0-py3-none-any.whl

Total release size: 7.9 kB

Release files / miniwifi-1.2.0.tar.gz

Download URL miniwifi-1.2.0.tar.gz
Size 3.7 kB
Tags Source
SHA-256 checksum
How to use checksums
073118c899b0fe26628fd40b3b607ac3e47d36f0b93a0ca1c4b25dc0b0322103
BLAKE2b-256 checksum
How to use checksums
c43084140f9dc5c9183bc1801d267c90957a2189973682de7b2afe95e5f79d09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / miniwifi-1.2.0-py3-none-any.whl

Download URL miniwifi-1.2.0-py3-none-any.whl
Size 4.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b9a71d4d91f51aa07c044d6c5a9f39b0e8e7ff3de5c1c77e2df5f2b38557bc46
BLAKE2b-256 checksum
How to use checksums
3f63bf78fea277ebab46eb5ab4cfd3611ece0333a62f683f69047204a184c8bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Security for miniwifi 1.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page