From c9623307997c62807af02d97017151b7b631c839 Mon Sep 17 00:00:00 2001 From: anqude <79022830+anqude@users.noreply.github.com> Date: Thu, 24 Nov 2022 22:16:04 +0400 Subject: [PATCH 1/3] Add files via upload --- PassgenCLI.py | 58 +++++++++++++++++++++++++ PassgenerGUI.py | 112 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 170 insertions(+) create mode 100644 PassgenCLI.py create mode 100644 PassgenerGUI.py diff --git a/PassgenCLI.py b/PassgenCLI.py new file mode 100644 index 0000000..8ae47b6 --- /dev/null +++ b/PassgenCLI.py @@ -0,0 +1,58 @@ +from secrets import choice # Для безопасной генерации пароля +from pyperclip import copy# Для копирования в буфер обмена + +numbers=['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] +lettersB=['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', ] +lettersS=["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"] +special=[ "!", "@", "№", "#", "$", "%", "^", "|", "&", "*", "_", "-", "=", "+", "-", "/", "(", ")", "?", "{", "}", "[", "]", "~", ">", "<", "." ] + + + +if __name__ == "__main__": + lineal=int(input("Длина пароля: ")) + number=input("Использовать числа? [Д/н] ") + letterB=input("Использовать большие буквы? [Д/н] ") + letterS=input("Использовать маленькие буквы? [Д/н] ") + spec=input("Использовать спец символы? [Д/н] ") + variables=[number,letterB,letterS,spec] + for i in range(len(variables)): + if variables[i] =="Д": + variables[i]=True + if variables[i] =="н": + variables[i]=False + number,letterB,letterS,spec=variables[0],variables[1],variables[2],variables[3] + + + +def alph_generate(number,letterB,letterS,spec): + password_lst=[] # Создаём алфавит пароля + if number==True: + password_lst+=numbers + if letterB==True: + password_lst+=lettersB + if letterS==True: + password_lst+=lettersS + if spec==True: + password_lst+=special + return password_lst + +def pass_generate(password_lst,lineal): + password=[] # Создаём непосредственно пароль + for i in range(lineal): + password.append(choice(password_lst)) + password=''.join(password) + return password + +def pass_copy(copys,password): + if copys==True: + copy(password) + +if __name__ == "__main__": + password_lst=alph_generate(number,letterB,letterS,spec) + password=pass_generate(password_lst,lineal) + print(password) + if(input("Скопировать в буфер обмена? [Д/н] ")=="Д") : + copys=True + else: + copys=False + pass_copy(copys) \ No newline at end of file diff --git a/PassgenerGUI.py b/PassgenerGUI.py new file mode 100644 index 0000000..b0d5316 --- /dev/null +++ b/PassgenerGUI.py @@ -0,0 +1,112 @@ +from customtkinter import CTk,CTkLabel,CTkButton,CTkEntry,CTkCheckBox,CTkToplevel +from PassgenCLI import * +from tkinter import IntVar,END,PhotoImage +from qr import generate_qr +import os + +counter=8 + +def Checkvariables(): + password_lst=alph_generate(Chnumber.get(),ChletterB.get(),ChletterS.get(),Chspec.get()) + return password_lst + + +scriptdir=os.path.abspath(__file__) +os.chdir(scriptdir.removesuffix('/PassgenerGUI.py')) + +window = CTk() +window.geometry("350x180") +window.resizable(width=False, height=False) + +window.title("Passgen by anqude") +window.tk.call('wm', 'iconphoto', window._w, PhotoImage(file='./ui/icon.png')) + +label = CTkLabel(text="Passgen") +label.pack() + + +entry=CTkEntry(width = 320) +entry.place(x=14, y=35) + + +Chspec = IntVar() +CheckCpec = CTkCheckBox(text='@~#',variable=Chspec, onvalue=True, offvalue=False) +CheckCpec.place(x=14, y=70) + +ChletterB = IntVar() +CheckLetterB = CTkCheckBox(text='A-Z',variable=ChletterB, onvalue=True, offvalue=False) +CheckLetterB.place(x=94, y=70) + +ChletterS = IntVar() +CheckLetterS = CTkCheckBox(text='a-z',variable=ChletterS, onvalue=True, offvalue=False) +CheckLetterS.place(x=174, y=70) + +Chnumber = IntVar() +CheckNumber = CTkCheckBox(text='0-9',variable=Chnumber, onvalue=True, offvalue=False) +CheckNumber.select() +CheckNumber.place(x=254, y=70) + +def minus_click(): + global counter + counter=int(label2.get()) + if counter==1: + pass + else: + counter-=1 + label2.delete(0, END) + label2.insert(0, counter) +minus = CTkButton(text="-",command=minus_click,width = 27) +minus.place(x=12, y=100) + + +label2=CTkEntry(width = 40) +label2.insert(0, counter) +label2.place(x=47, y=100) + + +def plus_click(): + global counter + counter=int(label2.get()) + counter+=1 + label2.delete(0, END) + label2.insert(0, counter) +plus = CTkButton(text="+",command=plus_click,width = 27) +plus.place(x=95, y=100) + + +def handle_click(): + entry.delete(0, END) + try: + password=pass_generate(Checkvariables(),int(label2.get())) + entry.insert(0, password) + except: + entry.insert(0, "") +button=CTkButton(text="Generate pass!", command=handle_click,width = 39) +button.place(x=12, y=140) + + +def copy_click(): + name = entry.get() + pass_copy(True,name) +Copy = CTkButton(text="Copy!",command=copy_click, width = 39) +Copy.place(x=122, y=140) + + +def genadiy(): + generate_qr(entry.get()) + from PIL import ImageTk,Image + window = CTkToplevel() + window.title("QR") + window.tk.call('wm', 'iconphoto', window._w, PhotoImage(file='qr.png')) + window.geometry("150x150") + window.resizable(width=False, height=False) + window.update_idletasks() + width=window.winfo_width() + height=window.winfo_height() + img = ImageTk.PhotoImage(Image.open("qr.png").resize((width,height),Image.Resampling.HAMMING),master = window) + qr=CTkButton(window,text="",image=img,border=0,fg_color=None,hover_color=None) + qr.pack() +genqr = CTkButton(text="Generate QR!",command=genadiy,width = 39) +genqr.place(x=175, y=140) + +window.mainloop() From 07034853374b38425220559982cf80fa55ea835c Mon Sep 17 00:00:00 2001 From: anqude <79022830+anqude@users.noreply.github.com> Date: Thu, 24 Nov 2022 22:17:29 +0400 Subject: [PATCH 2/3] Delete PassgenerGUI.py --- PassgenerGUI.py | 112 ------------------------------------------------ 1 file changed, 112 deletions(-) delete mode 100644 PassgenerGUI.py diff --git a/PassgenerGUI.py b/PassgenerGUI.py deleted file mode 100644 index b0d5316..0000000 --- a/PassgenerGUI.py +++ /dev/null @@ -1,112 +0,0 @@ -from customtkinter import CTk,CTkLabel,CTkButton,CTkEntry,CTkCheckBox,CTkToplevel -from PassgenCLI import * -from tkinter import IntVar,END,PhotoImage -from qr import generate_qr -import os - -counter=8 - -def Checkvariables(): - password_lst=alph_generate(Chnumber.get(),ChletterB.get(),ChletterS.get(),Chspec.get()) - return password_lst - - -scriptdir=os.path.abspath(__file__) -os.chdir(scriptdir.removesuffix('/PassgenerGUI.py')) - -window = CTk() -window.geometry("350x180") -window.resizable(width=False, height=False) - -window.title("Passgen by anqude") -window.tk.call('wm', 'iconphoto', window._w, PhotoImage(file='./ui/icon.png')) - -label = CTkLabel(text="Passgen") -label.pack() - - -entry=CTkEntry(width = 320) -entry.place(x=14, y=35) - - -Chspec = IntVar() -CheckCpec = CTkCheckBox(text='@~#',variable=Chspec, onvalue=True, offvalue=False) -CheckCpec.place(x=14, y=70) - -ChletterB = IntVar() -CheckLetterB = CTkCheckBox(text='A-Z',variable=ChletterB, onvalue=True, offvalue=False) -CheckLetterB.place(x=94, y=70) - -ChletterS = IntVar() -CheckLetterS = CTkCheckBox(text='a-z',variable=ChletterS, onvalue=True, offvalue=False) -CheckLetterS.place(x=174, y=70) - -Chnumber = IntVar() -CheckNumber = CTkCheckBox(text='0-9',variable=Chnumber, onvalue=True, offvalue=False) -CheckNumber.select() -CheckNumber.place(x=254, y=70) - -def minus_click(): - global counter - counter=int(label2.get()) - if counter==1: - pass - else: - counter-=1 - label2.delete(0, END) - label2.insert(0, counter) -minus = CTkButton(text="-",command=minus_click,width = 27) -minus.place(x=12, y=100) - - -label2=CTkEntry(width = 40) -label2.insert(0, counter) -label2.place(x=47, y=100) - - -def plus_click(): - global counter - counter=int(label2.get()) - counter+=1 - label2.delete(0, END) - label2.insert(0, counter) -plus = CTkButton(text="+",command=plus_click,width = 27) -plus.place(x=95, y=100) - - -def handle_click(): - entry.delete(0, END) - try: - password=pass_generate(Checkvariables(),int(label2.get())) - entry.insert(0, password) - except: - entry.insert(0, "") -button=CTkButton(text="Generate pass!", command=handle_click,width = 39) -button.place(x=12, y=140) - - -def copy_click(): - name = entry.get() - pass_copy(True,name) -Copy = CTkButton(text="Copy!",command=copy_click, width = 39) -Copy.place(x=122, y=140) - - -def genadiy(): - generate_qr(entry.get()) - from PIL import ImageTk,Image - window = CTkToplevel() - window.title("QR") - window.tk.call('wm', 'iconphoto', window._w, PhotoImage(file='qr.png')) - window.geometry("150x150") - window.resizable(width=False, height=False) - window.update_idletasks() - width=window.winfo_width() - height=window.winfo_height() - img = ImageTk.PhotoImage(Image.open("qr.png").resize((width,height),Image.Resampling.HAMMING),master = window) - qr=CTkButton(window,text="",image=img,border=0,fg_color=None,hover_color=None) - qr.pack() -genqr = CTkButton(text="Generate QR!",command=genadiy,width = 39) -genqr.place(x=175, y=140) - -window.mainloop() From 4efebe6802803da780944561241d90dddabb2706 Mon Sep 17 00:00:00 2001 From: anqude <79022830+anqude@users.noreply.github.com> Date: Thu, 24 Nov 2022 22:17:38 +0400 Subject: [PATCH 3/3] Delete PassgenCLI.py --- PassgenCLI.py | 58 --------------------------------------------------- 1 file changed, 58 deletions(-) delete mode 100644 PassgenCLI.py diff --git a/PassgenCLI.py b/PassgenCLI.py deleted file mode 100644 index 8ae47b6..0000000 --- a/PassgenCLI.py +++ /dev/null @@ -1,58 +0,0 @@ -from secrets import choice # Для безопасной генерации пароля -from pyperclip import copy# Для копирования в буфер обмена - -numbers=['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] -lettersB=['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', ] -lettersS=["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"] -special=[ "!", "@", "№", "#", "$", "%", "^", "|", "&", "*", "_", "-", "=", "+", "-", "/", "(", ")", "?", "{", "}", "[", "]", "~", ">", "<", "." ] - - - -if __name__ == "__main__": - lineal=int(input("Длина пароля: ")) - number=input("Использовать числа? [Д/н] ") - letterB=input("Использовать большие буквы? [Д/н] ") - letterS=input("Использовать маленькие буквы? [Д/н] ") - spec=input("Использовать спец символы? [Д/н] ") - variables=[number,letterB,letterS,spec] - for i in range(len(variables)): - if variables[i] =="Д": - variables[i]=True - if variables[i] =="н": - variables[i]=False - number,letterB,letterS,spec=variables[0],variables[1],variables[2],variables[3] - - - -def alph_generate(number,letterB,letterS,spec): - password_lst=[] # Создаём алфавит пароля - if number==True: - password_lst+=numbers - if letterB==True: - password_lst+=lettersB - if letterS==True: - password_lst+=lettersS - if spec==True: - password_lst+=special - return password_lst - -def pass_generate(password_lst,lineal): - password=[] # Создаём непосредственно пароль - for i in range(lineal): - password.append(choice(password_lst)) - password=''.join(password) - return password - -def pass_copy(copys,password): - if copys==True: - copy(password) - -if __name__ == "__main__": - password_lst=alph_generate(number,letterB,letterS,spec) - password=pass_generate(password_lst,lineal) - print(password) - if(input("Скопировать в буфер обмена? [Д/н] ")=="Д") : - copys=True - else: - copys=False - pass_copy(copys) \ No newline at end of file