1+ import streamlit as st
2+ import random
3+ import string
4+
5+ st .set_page_config (page_title = "Password Generator" , page_icon = "🔐" , layout = "centered" )
6+ st .title ('🔐 Advanced Password Generator' )
7+ st .write ('Generate a secure password with custom options!' )
8+
9+ def passwordGenerator (length , useUpperCase , useLowerCase , useDigits , useSpecialCharacters ):
10+ characters = ""
11+
12+ if useUpperCase :
13+ characters += string .ascii_uppercase
14+
15+ if useLowerCase :
16+ characters += string .ascii_lowercase
17+
18+ if useDigits :
19+ characters += string .digits
20+
21+ if useSpecialCharacters :
22+ characters += string .punctuation
23+
24+ if not characters :
25+ return "Please Select at least one Option!"
26+
27+ return '' .join (random .choice (characters ) for _ in range (length ))
28+
29+
30+ length = st .slider ("🔐 Password Length" , min_value = 6 , max_value = 32 , value = 12 )
31+ useUpperCase = st .checkbox ("🔠 Uppercase Letters (A-Z)" , value = True )
32+ useLowerCase = st .checkbox ("🔡 Lowercase Letters (a-z)" , value = True )
33+ useDigit = st .checkbox ("🔢 Numbers (0-9)" , value = False )
34+ useSpecialCharacters = st .checkbox ("💢 Special Characters (@, #, !, etc.)" , value = False )
35+ visibility = st .radio ("🔍 Show Password As:" , ["Plain Text" , "Hidden" ])
36+
37+ if st .button ("🔑 Generate Password" ):
38+ password = passwordGenerator (length , useUpperCase , useLowerCase , useDigit , useSpecialCharacters )
39+
40+ if password != "Please Select at least one Option!" :
41+ st .success ("✅ Password Generated Successfully!" )
42+ if visibility == "Plain Text" :
43+ st .text_input ("Generated Password:" , value = password , key = "password" )
44+ else :
45+ st .text_input ("Generated Password:" , value = password , key = "password" , type = "password" )
46+
47+ st .write ("📋 Copy Password into Clipboard:" )
48+ st .code (password , language = "plaintext" )
49+ else :
50+ st .error ("⚠️ Please select at least one character type!" )
51+
52+
53+ st .divider ()
54+
55+ st .write ("Made with ❤️ by [Muhammad Shabbir](https://codewithshabbir.vercel.app/)" )
0 commit comments