Skip to main content

Python Wi-Fi security toolkit

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

miniwifi-1.2.0.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

miniwifi-1.2.0-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file miniwifi-1.2.0.tar.gz.

File metadata

  • Download URL: miniwifi-1.2.0.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for miniwifi-1.2.0.tar.gz
Algorithm Hash digest
SHA256 073118c899b0fe26628fd40b3b607ac3e47d36f0b93a0ca1c4b25dc0b0322103
MD5 0aaf223271638568c5ba22f0269c2504
BLAKE2b-256 c43084140f9dc5c9183bc1801d267c90957a2189973682de7b2afe95e5f79d09

See more details on using hashes here.

File details

Details for the file miniwifi-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: miniwifi-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for miniwifi-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b9a71d4d91f51aa07c044d6c5a9f39b0e8e7ff3de5c1c77e2df5f2b38557bc46
MD5 93f0f530e2a721f7633108ae5d0b8244
BLAKE2b-256 3f63bf78fea277ebab46eb5ab4cfd3611ece0333a62f683f69047204a184c8bc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page