Skip to content

Commit 5bf2d44

Browse files
password generator app in python
0 parents  commit 5bf2d44

File tree

6 files changed

+643
-0
lines changed

6 files changed

+643
-0
lines changed

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Python-generated files
2+
__pycache__/
3+
*.py[oc]
4+
build/
5+
dist/
6+
wheels/
7+
*.egg-info
8+
9+
# Virtual environments
10+
.venv

.python-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
3.13

README.md

Whitespace-only changes.

main.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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/)")

pyproject.toml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
[project]
2+
name = "password-generator"
3+
version = "0.1.0"
4+
description = "Add your description here"
5+
readme = "README.md"
6+
requires-python = ">=3.13"
7+
dependencies = [
8+
"streamlit>=1.43.1",
9+
]

0 commit comments

Comments
 (0)