Mundo em Python

Gestor de Password do curso - 100 Days of Code: The Complete Python Pro Bootcamp

from tkinter import *
from tkinter import messagebox
import pyperclip
from random import randint,choice, shuffle root = Tk()
root.title("Password Manager")
root.config(padx=25, pady=25)
def show_hide_password():
if password_entry["show"] == "*":
password_entry["show"] = ""
else:
password_entry["show"] = "*"
def generate_password():
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
'u', 'v',
'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
'Q', 'R',
'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
symbols = ['!', '#', '$', '%', '&', '(', ')', '*', '+'] password_list = [choice(letters) for _ in range(randint(8, 10))]
password_list += [choice(symbols) for _ in range(randint(2, 4))]
password_list += [choice(numbers) for _ in range(randint(2, 4))] shuffle(password_list) password = "".join(password_list)
pyperclip.copy(password) password_entry.insert(0, password)
def save ():
website = website_entry.get()
email = email_username_entry.get()
password = password_entry.get()
if website=="" or password=="":
messagebox.showerror("Erro", "Website ou Password vazios!")
else:
resposta = messagebox.askokcancel(website, f"Detalhes da informação recolhida:\nEmail: {email}.\n Palavra-Passe: "
f" {password}.\n Para salvar carrege em ok.")
if resposta:
with open("data.txt", mode="a") as file:
file.write(f"{website} | {email} | {password}\n")
website_entry.delete(0, END)
password_entry.delete(0, END)
canvas = Canvas(width=200, height=200)
logo_png = PhotoImage(file="logo.png")
canvas.create_image(100, 100, image=logo_png)
canvas.grid(column=1, row=0)
website_label = Label(text="Website:")
website_label.grid(column=0, row=1)
email_username_label = Label(text="Email/Username:")
email_username_label.grid(column=0, row=2)
password_label = Label(text="Password:", width=21)
password_label.grid(column=0, row=3) #
generate_button = Button(text="Generate Password", width=21, command=generate_password)
generate_button.grid(column=2, row=3, columnspan=2)
add_button = Button(text="Add", width=36, command=save)
add_button.grid(column=1, row=4, columnspan=2)
# Ocultar Variavel

hide_password_checkbox = Checkbutton(root, text="Ocultar Senha", command=show_hide_password)
hide_password_checkbox.grid(column=1, row=5, columnspan=2) website_entry = Entry(width=35)
website_entry.grid(column=1, row=1, columnspan=2)
#.focus() significa que o widget ficará ativo e pronto para receber entrada do usuário, como eventos de teclado
website_entry.focus()
email_username_entry = Entry(width=35)
email_username_entry.grid(column=1, row=2, columnspan=2)
# .insert(0, "[email protected]") escreve imediatamente um texto
email_username_entry.insert(0, "[email protected]")
password_entry = Entry(width=22)
password_entry.grid(column=1, row=3) root.mainloop()
0