diff --git a/PasswordGenerator/main.py b/PasswordGenerator/main.py index 0e3a5fb..0613d86 100644 --- a/PasswordGenerator/main.py +++ b/PasswordGenerator/main.py @@ -1,50 +1,47 @@ import customtkinter as ct import random -import json - +import string +import pyperclip app = ct.CTk() +def slider_cmd(val): + label_info_length.configure(text=int(val)) -with open('settings.json') as setting: - settings_data = json.load(fp=setting) - - -def slider_command(value): - label_info_length.configure(text=int(value)) - - -def generate_password(): +def gen_passwd(): length = int(slider.get()) - characters = settings_data['characters'] + characters = string.ascii_letters + string.digits + string.punctuation password = ''.join(random.choices(characters, k=length)) label_password.configure(text=password) +def copy_passwd(): + password = label_password.cget("text") + pyperclip.copy(password) -app.geometry('470x270') +app.geometry('500x300') app.resizable(False, False) -app.title("Password generator") - +app.title("Password Generator") -slider_frame = ct.CTkFrame(app, width=460, height=50) -slider_frame.pack(side='bottom' ,pady=5) +slider_frame = ct.CTkFrame(app, width=500, height=70) +slider_frame.pack(side='top', pady=5) slider_label = ct.CTkLabel(slider_frame, text='Password Length: ', font=('Arial', 12)) slider_label.pack(side='left') -slider = ct.CTkSlider(slider_frame,command=slider_command, from_=1, to=settings_data['max_password_length']) +slider = ct.CTkSlider(slider_frame, command=slider_cmd, from_=10, to=50) +slider.set(15) slider.pack(side='left') - -label_info_length = ct.CTkLabel(slider_frame, text='20') +label_info_length = ct.CTkLabel(slider_frame, text='15') label_info_length.pack(side='left', pady=20) -btn_generate = ct.CTkButton(app, text='Generate', width=140, height=40, command=generate_password) -btn_generate.pack(side='bottom', pady=15) - +generate_btn = ct.CTkButton(app, text='Generate', width=150, height=50, command=gen_passwd) +generate_btn.pack(side='top', padx=10,pady=10) +copy_btn = ct.CTkButton(app, text='Copy', width=100, height=50, command=copy_passwd) +copy_btn.pack(side='bottom', padx=10,pady=10) -pass_frame = ct.CTkFrame(app, width=460, height=100) -pass_frame.pack(anchor='n', pady=5) -label_password = ct.CTkLabel(pass_frame, text='hello', width=460, height=100, font=('Arial', 18)) +passwd_frame = ct.CTkFrame(app, width=500, height=150) +passwd_frame.pack(anchor='n', pady=5) +label_password = ct.CTkLabel(passwd_frame, text='Use Generate button', width=500, height=150, font=('Arial', 18)) label_password.pack() app.mainloop() diff --git a/PasswordGenerator/settings.json b/PasswordGenerator/settings.json deleted file mode 100644 index 0656449..0000000 --- a/PasswordGenerator/settings.json +++ /dev/null @@ -1,6 +0,0 @@ - -{ -"characters": "1234567890", -"password_length": 8, -"numbers_pieces": 1 -} diff --git a/README.md b/README.md index d097bd7..d4e9b7a 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # PasswordGenerator +Secure python password generation app with GUI. -### Settings -To set password characters, use the file settings.json and in the characters clause, change them to the characters you need +# Requirements: + - customtkinter + + - pyperclip + +# How to run the password generator? +run `python main.py` -### Using -```# clone the repo -pip install customtkinter -$ git clone https://github.com/pydragon1/PasswordGenerator.git -cd PasswordGenerator -python main.py