Modern AI Password Analyzer GUI App using Python | Stylish Secure Password Generator [2025]
Demo :
Click Video πππ
### π Features:
- Beautiful dark-themed GUI with CustomTkinter
- AI-based password suggestions using NLP
- Real-time strength checker with live results
- Minimal, clean UI with responsive elements
- Beginner-friendly Python source code
### π Folder Structure:
PasswordAIAnalyzer/
├── assets/
│ ├── icons/
│ └── fonts/
├── src/
│ ├── gui.py
│ ├── strength_checker.py
│ ├── ai_suggestions.py
│ └── utils.py
├── main.py
├── requirements.txt
└── README.md
Code :
### main.py
from src.gui import run_app
if __name__ == "__main__":
run_app()
### requirements.txt
customtkinter
nltk
darkdetect
### README.md
# PasswordAIAnalyzer
Modern Password Strength Analyzer GUI App in Python.
## Features
- Dark mode GUI with customtkinter
- AI-based password suggestions
- Live strength meter
- Clean UI with icons & fonts
## Run
```bash
pip install -r requirements.txt
python main.py
```
---
### src/gui.py
import customtkinter as ctk
from tkinter import messagebox
from src.strength_checker import check_strength
from src.ai_suggestions import suggest_passwords
ctk.set_appearance_mode("System")
ctk.set_default_color_theme("dark-blue")
def run_app():
app = ctk.CTk()
app.title("Password AI Analyzer")
app.geometry("600x400")
def analyze():
password = entry.get()
score, level = check_strength(password)
result.configure(text=f"Strength: {level}")
suggestions = suggest_passwords(password)
suggest_box.configure(text="\n".join(suggestions))
frame = ctk.CTkFrame(master=app)
frame.pack(pady=40, padx=60, fill="both", expand=True)
label = ctk.CTkLabel(master=frame, text="Enter Your Password", font=("Arial", 18))
label.pack(pady=10)
entry = ctk.CTkEntry(master=frame, placeholder_text="Type password here", show="*")
entry.pack(pady=10)
button = ctk.CTkButton(master=frame, text="Analyze", command=analyze)
button.pack(pady=10)
result = ctk.CTkLabel(master=frame, text="Strength: ", font=("Arial", 14))
result.pack(pady=10)
suggest_box = ctk.CTkLabel(master=frame, text="", font=("Arial", 12), wraplength=400)
suggest_box.pack(pady=10)
app.mainloop()
### src/strength_checker.py
import re
def check_strength(password):
score = 0
if len(password) >= 8:
score += 1
if re.search(r"[A-Z]", password):
score += 1
if re.search(r"[a-z]", password):
score += 1
if re.search(r"[0-9]", password):
score += 1
if re.search(r"[@$!%*?&#]", password):
score += 1
if score <= 2:
return score, "Weak"
elif score == 3:
return score, "Moderate"
else:
return score, "Strong"
### src/ai_suggestions.py
import nltk
from nltk.corpus import words
import random
nltk.download('words')
word_list = set(words.words())
def suggest_passwords(password):
suggestions = []
if password.lower() in word_list:
suggestions.append("Avoid dictionary words")
if len(password) < 8:
suggestions.append("Make it at least 8 characters")
if password.islower() or password.isupper():
suggestions.append("Use a mix of upper/lowercase")
if password.isalnum():
suggestions.append("Add symbols like !, @, #")
suggestions.append("Try this: {}!{}{}".format(
random.choice("ABCD"),
random.randint(100, 999),
random.choice("xyz@#")
))
return suggestions
Comments
Post a Comment