import streamlit as st import random import string # Session state setup if "generated_password" not in st.session_state: st.session_state.generated_password = "" if "saved_passwords" not in st.session_state: st.session_state.saved_passwords = [] # Dark mode toggle dark_mode = st.toggle("🌙 Dark Mode") st.title("🔐 Advanced Password Generator App") # Password length length = st.slider("Select Password Length", 4, 32, 12) # Options uppercase = st.checkbox("Include Uppercase Letters") lowercase = st.checkbox("Include Lowercase Letters") numbers = st.checkbox("Include Numbers") symbols = st.checkbox("Include Symbols") characters = "" if uppercase: characters += string.ascii_uppercase if lowercase: characters += string.ascii_lowercase if numbers: characters += string.digits if symbols: characters += string.punctuation # Password strength checker def check_strength(password): strength = 0 if len(password) >= 8: strength += 1 if any(char.isupper() for char in password): strength += 1 if any(char.isdigit() for char in password): strength += 1 if any(char in string.punctuation for char in password): strength += 1 if strength <= 1: return "Weak ❌" elif strength == 2: return "Medium ⚠️" else: return "Strong ✅" # Generate password button if st.button("Generate Password"): if characters == "": st.warning("Please select at least one option!") else: st.session_state.generated_password = ''.join( random.choice(characters) for _ in range(length) ) # Show password (permanent display) if st.session_state.generated_password: st.success("Generated Password:") st.code(st.session_state.generated_password) strength = check_strength(st.session_state.generated_password) st.write("Password Strength:", strength) if st.button("Save Password"): st.session_state.saved_passwords.append( st.session_state.generated_password ) st.success("Password Saved Successfully!") # Show saved passwords if st.session_state.saved_passwords: st.subheader("Saved Passwords 📁") for pwd in st.session_state.saved_passwords: st.code(pwd)