Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!
password_generator — Un generatore di password CLI pronto per la produzione, crittograficamente sicuro, con 17 modalità di generazione, trasparenza dell'entropia e opzioni di personalizzazione complete. | Kitploit
Un generatore di password CLI pronto per la produzione, crittograficamente sicuro, con 17 modalità di generazione, trasparenza dell'entropia e opzioni di personalizzazione complete.
Un CLI generatore di password crittograficamente sicuro, pronto per la produzione, con 17 modalità di generazione, trasparenza dell'entropia e opzioni di personalizzazione complete.
Caratteristiche
17 Modalità di Generazione
Generatore
Comando
Descrizione
Random
random, r
Password casuali crittograficamente sicure
Passphrase
phrase, p
Passphrase basate su parole usando la wordlist EFF
Leetspeak
leet, l
Passphrase con sostituzione di caratteri (A→4, E→3, ecc.)
PIN
pin
PIN numerici di lunghezza configurabile
Pronunciabile
pronounce, pr
Password basate su sillabe facili da pronunciare
UUID
uuid, u
UUID RFC 4122/9562 (v1, v4, v7) e brevi (Base58)
Base64
base64, b64
Segreti codificati in base64 sicuri per URL
JWT Secret
jwt
Segreti ad alta entropia per firma JWT (HS256/384/512)
Chiave WiFi
wifi
Chiavi compatibili WPA2/WPA3 (8-63 caratteri)
Chiave Licenza
license
Chiavi di licenza software (formato AXB, es. 5x5)
Codici di Recupero
recovery
Codici di backup 2FA (numerici o basati su parole)
Codice/Secret OTP
otp
Codici e secret TOTP/HOTP con URI otpauth
Pattern
pattern
Password basate su pattern visivo a griglia
Frase Tematica
phrase (personalizzato)
Passphrase da wordlist tematiche (animali, fantascienza, ecc.)
Fonetico NATO
phonetic, ph
Converti testo/password in alfabeto NATO (Alfa-Bravo)
Archivio Vault Sicuro: Il vault dedicato gestisce le chiavi crittografiche tramite .env (raccomandato) o il legacy .vault.key con permessi file rigorosi 0600
Architettura Zero Perdite: 🛡️ Il codice sorgente e i log sono bloccati dall'accesso del browser in modalità PWA; gli input sensibili sono mascherati in modalità CLI per l'analisi dell'entropia.
Esportazioni Oscurate: Esportazione della cronologia con priorità alla sicurezza, oscuramento automatico delle password per impostazione predefinita
UI Zero-Indentazione: Output pulito e professionale allineato a sinistra per tutte le modalità
Leetspeak Intelligente: Sostituzione probabilistica per password più naturali e leggibili
Validazione Robusta: Prompt interattivi con valori predefiniti e gestione errori ricorsiva
Frontend PWA Difensivo: 🛡️ Controlli di sicurezza integrati per asset CDN per prevenire crash di inizializzazione.
Modificatori Globali: Modalità --easy-read e --easy-say
Modalità Paranoica: Raccolta manuale opzionale di entropia tramite jitter di temporizzazione della tastiera per la massima sicurezza.
Installazione
root@kitploit:~
# Clone the repository
git clone https://github.com/krishnakanthb13/password_generator.git
cd password_generator
# Install dependencies (colorama, cryptography, pyperclip, etc.)
pip install -r requirements.txt
Avvio Rapido
root@kitploit:~
# Generate a 20-character random password
python main.py random -l 20
# Generate a 4-word passphrase
python main.py phrase -w 4 --capitalize
# Generate a leetspeak passphrase
python main.py leet -w 3 -s _
# Generate with entropy analysis
python main.py --show-entropy random -l 16
# Launch interactive mode
python main.py --interactive
# Use a preset profile (Strong)
python main.py --preset strong --show-entropy
Esempi di Utilizzo
Password Casuali
root@kitploit:~
# Basic 16-character password
python main.py random
# 24-character, letters only
python main.py random -l 24 --no-symbols --no-digits
# Easy to read (no 0/O, 1/l/I)
python main.py --easy-read random -l 20
# With minimum requirements
python main.py random -l 16 --min-upper 2 --min-digits 2 --min-symbols 1
# Balanced mode (mostly letters, fewer symbols)
python main.py random -l 24 --balanced
# JWT secret for HS256
python main.py jwt --bits 256
# Base64 API key
python main.py base64 -b 32 --url-safe
# UUID token (v4 Random)
python main.py uuid --upper
# UUID v7 (Time-based, sortable)
python main.py uuid --ver 7
# Or shortcut
python main.py uuid --v7
# Short UUID (Base58 encoded, ~22 chars)
python main.py uuid --short
# Generate a v7 UUID using the shortcut
python main.py u --v7
# Generate 10 short v4 UUIDs
python main.py uuid --v4 --short -n 10
# NATO Phonetic Conversion
python main.py phonetic --text "PassForge"
# Output: Papa-Alpha-Sierra-Sierra-Foxtrot-Oscar-Romeo-Golf-Echo
Sicurezza e Registrazione
root@kitploit:~
# Analyze an existing password
python main.py analyze "p@ssword123"
# Log to history
python main.py --log random -l 16
# View last 10 history entries (default)
python main.py history
# View all history entries (decrypted on the fly)
python main.py history --all
# View history with redacted passwords
python main.py history --redact
# Export history (Redacted by default)
python main.py history --export backup.json
# Export history (Plaintext - requires caution)
python main.py history --export secrets.csv --no-redact
# JSON output for scripts
python main.py --json jwt --bits 256
Riferimento Comandi
Flag
Descrizione
--preset
Usa un profilo di sicurezza predefinito (strong, memorable, dev, pin, web, wifi, key)
Mostra analisi entropia (abilitata per default nei lanciatori)
--check-strength
Esegui analisi pattern zxcvbn
-c, --clipboard
Copia il risultato negli appunti
--confirm-copy
Chiedi conferma prima di copiare il risultato
--clipboard-timeout
Cancella automaticamente gli appunti dopo N secondi (default: 30)
--log
Registra la password nella cronologia (crittografata AES-128)
--no-color
Disabilita output colorato
--easy-read
Escludi caratteri ambigui (0/O, 1/l/I)
--easy-say
Solo caratteri pronunciabili (nessun simbolo)
Opzioni Specifiche del Generatore
Random (random, r)
Flag
Default
Descrizione
-l, --length
16
Lunghezza password (4-1024)
--no-uppercase
-
Escludi lettere maiuscole
--no-lowercase
-
Escludi lettere minuscole
--no-digits
-
Escludi cifre
--no-symbols
-
Escludi simboli
--include
-
Caratteri aggiuntivi da includere
--exclude
-
Caratteri da escludere
--no-repeats
-
Nessun carattere ripetuto
--min-upper
0
Minimo caratteri maiuscoli
--min-lower
0
Minimo caratteri minuscoli
--min-digits
0
Minimo cifre
--min-symbols
0
Minimo simboli
--balanced
-
Rapporto bilanciato (60/20/20)
-n, --count
1
Numero da generare
Passphrase (phrase, p)
Flag
Default
Descrizione
-w, --words
4
Numero di parole (2-64)
-s, --separator
-
Separatore di parole
--capitalize
-
Capitalizza ogni parola
--uppercase
-
Tutte le parole in maiuscolo
--alternate
-
Maiuscole/minuscole alternate (aLtErNaTe)
--wordlist
-
Percorso wordlist personalizzata
-n, --count
1
Numero da generare
Leetspeak (leet, l)
Flag
Default
Descrizione
-w, --words
3
Numero di parole (2-64)
-s, --separator
-
Separatore di parole ( - _ . , )
-n, --count
1
Numero da generare
PIN (pin)
Flag
Default
Descrizione
-l, --length
6
Lunghezza PIN (4-64)
-n, --count
1
Numero da generare
Pronunciabile (pronounce, pr)
Flag
Default
Descrizione
-l, --length
12
Lunghezza password (4-128)
-n, --count
1
Numero da generare
UUID (uuid)
Flag
Default
Descrizione
--ver
4
Versione UUID (1, 4, 7)
--short
-
Formato breve (Base58)
--upper
-
Output maiuscolo (solo hex)
-n, --count
1
Numero da generare
Base64 (base64, b64)
Flag
Default
Descrizione
-b, --bytes
32
Numero di byte casuali
--url-safe
-
Usa caratteri sicuri per URL
JWT Secret (jwt)
Flag
Default
Descrizione
--bits
256
Lunghezza in bit (256, 384, 512)
--hex
-
Output come stringa hex
Chiave WiFi (wifi)
Flag
Default
Descrizione
-l, --length
24
Lunghezza chiave (8-63, default: 24)
--simple
-
Solo alfanumerico (nessun simbolo)
Chiave Licenza (license)
Flag
Default
Descrizione
--segments
4
Numero di segmenti (2-64)
--segment-length
4
Caratteri per segmento (2-32)
Codici di Recupero (recovery)
Flag
Default
Descrizione
-n, --count
10
Numero di codici (5-20, default: 10)
-l, --length
10
Lunghezza codice (cifre o parole, default: 10/3)
--words
-
Usa codici basati su parole
OTP Secret (otp)
Flag
Default
Descrizione
--digits
6
Lunghezza codice (6 o 8)
--period
30
Periodo di tempo in secondi
--qr
-
Mostra QR code nel terminale
Pattern (pattern)
Flag
Default
Descrizione
--grid
3
Dimensione griglia (es. 3x3)
Fonetico (phonetic, ph)
Flag
Default
Descrizione
--text
-
Testo da convertire in alfabeto NATO
-l, --length
8
Lunghezza sequenza casuale (4-64)
Cronologia (history)
Flag
Default
Descrizione
--last
10
Mostra ultime N voci (1-100, default: 10)
--all, -a
-
Mostra tutte le voci cronologia (sostituisce --last)
--search
-
Filtra cronologia per parola chiave
--redact
-
Oscura le password nell'output terminale
--export
-
Esporta cronologia in file (JSON/CSV)
--no-redact
-
Non oscura le password nell'esportazione (Attenzione!)
--clear
-
Cancella tutte le voci della cronologia
Guida all'Entropia
PassForge fornisce un Report Entropia completo che include la dimensione del pool di caratteri grezzo, i bit di Shannon e le stime di tempo per attacco brute-force.
Entropia (bit)
Forza
Caso d'Uso
< 28
Molto Debole
Non usare mai
28-36
Debole
Solo bassa sicurezza
36-60
Ragionevole
Account standard
60-80
Forte
Dati sensibili
80-128
Molto Forte
Sistemi alta sicurezza
> 128
Eccellente
Infrastruttura critica
Nota: Per una spiegazione dettagliata di ogni tipo di generatore, consulta LITERATURE.md.
# Run all tests
python -m pytest tests/ -v
# Run specific test class
python -m pytest tests/test_generators.py::TestRandomPasswordGenerator -v
# Run with coverage
python -m pytest tests/ --cov=src --cov-report=html
Tutti i 53 test unitari coprono:
Tutte le 15 modalità di generazione specializzate
Calcolatori di entropia e forza zxcvbn
Cancellazione automatica della clipboard e archiviazione sicura
Logica di generazione QR code ASCII
Caricamento configurazione e preset
Configurazione
PassForge supporta file di configurazione in formato YAML o JSON.
Posizioni dei File di Configurazione (cercati in ordine):
./passforge.yaml o ./passforge.json
./.passforge.yaml o ./.passforge.json
~/.passforge/config.yaml o ~/.passforge/config.json
Vedi passforge.example.json per tutte le opzioni disponibili.
Creazione dell'Eseguibile Autonomo
PassForge può essere compilato in un singolo eseguibile autonomo usando PyInstaller.
Windows
root@kitploit:~
# Using the build script
passforge_build.bat
# Or manually
pip install pyinstaller
pyinstaller --onefile --name passforge --console main.py
Linux/macOS
root@kitploit:~
# Using the build script
chmod +x passforge_build.sh
./passforge_build.sh
# Or manually
pip install pyinstaller
pyinstaller --onefile --name passforge --console main.py
L'eseguibile verrà creato nella cartella dist/ (~7MB, zero dipendenze).
🌐 PassForge Web (Add-on PWA)
PassForge ora include una moderna interfaccia web reattiva (PWA) che fornisce un modo visivo per generare e gestire le password, mantenendo la piena parità con la versione CLI.
Caratteristiche Principali
Interfaccia Sidebar: Navigazione facile tra tutti i tipi di generatore.
Slider Visivi: Regola lunghezze e conteggio parole con slider interattivi.
Supporto QR: Generazione istantanea di QR code per condividere password o segreti OTP.
Modalità Scura/Chiara: Estetica premium con cambio tema automatico in base al sistema.
Installabile: Supporto per installazione PWA su Windows, Linux e mobile.
Cronologia Condivisa: Utilizza lo stesso file di log crittografato della CLI.
Avvio della PWA
Per avviare l'interfaccia web, esegui lo script di avvio per il tuo sistema operativo:
Windows: passforge_pwa.bat
Linux/macOS: passforge_pwa.sh
[!IMPORTANT]
Hardening della Sicurezza (v34+): La PWA ora utilizza un gestore SecureStaticFiles che blocca esplicitamente l'accesso del browser ai file sorgente Python, ai log e alle chiavi crittografiche. L'accesso alla cronologia è protetto tramite un handshake con chiave API interna. La logica frontend include anche wrapper difensivi per asset CDN esterni per garantire funzionalità anche se un CDN è bloccato.
[!TIP]
Disponibilità Build: I file PWA sono inclusi nelle distribuzioni Codice Sorgente e ZIP/Tarball. La PWA non è incorporata nel binario .exe singolo.
Il lanciatore installerà automaticamente le dipendenze necessarie (fastapi, uvicorn), avvierà un server locale su http://127.0.0.1:8093 e aprirà il browser.