MiniWiFi - Python Wi-Fi Security Toolkit
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 :
- 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)}")
- 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])
- 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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.