Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import tkinter
- from tkinter import filedialog
- window =tkinter.Tk()
- window.title('Crypto')
- window.geometry('800x600')
- window.minsize(800, 600)
- window.maxsize(800, 600)
- window.configure(bg="LightSteelBlue4")
- def clearRoot():
- for widget in root.winfo_children():
- widget.destroy()
- def mainFrame():
- clearRoot()
- title =tkinter.Label(master=root,text="CRYPTO", fg="gray5", font=("Helvetica ", 25, "bold"), height=1, bg="LightSteelBlue4")
- title.pack()
- title =tkinter.Label(master=root,text="If you want to input file - choose File button, if you want to write - Text:",
- fg="gray15", font=("Helvetica ", 15), height=1, bg="LightSteelBlue4")
- title.pack()
- bFrame=tkinter.Frame(master=root, relief="flat", padx=3, pady=3, width=100, bg="LightSteelBlue4")
- b1 = tkinter.Button(master=bFrame, text = "File", font=("Helvetica", 15), fg="gray15",
- relief="flat", bg ="LightSteelBlue2", command = fileInputFrame)
- b1.pack(side = tkinter.LEFT, padx = 5, pady = 5)
- b2 = tkinter.Button(master=bFrame, text = 'Text', font=("Helvetica", 15), fg="gray15",
- relief="flat", bg ="LightSteelBlue2", command = textInputFrame)
- b2.pack(side = tkinter.RIGHT, padx = 5, pady = 5)
- bFrame.pack()
- def textInputFrame():
- clearRoot()
- title =tkinter.Label(master=root,text="CRYPTO: Text input", fg="gray5", font=("Helvetica ", 25, "bold"), height=1, bg="LightSteelBlue4")
- title.pack()
- title =tkinter.Label(master=root,text="Write text, key value and number of charecters",
- fg="gray15", font=("Helvetica ", 15), height=1, bg="LightSteelBlue4")
- title.pack()
- title =tkinter.Label(master=root,text="in group if you encrypt or only text and key value if decrypt",
- fg="gray15", font=("Helvetica ", 15), height=1, bg="LightSteelBlue4")
- title.pack()
- title =tkinter.Label(master=root,text="Type your text here:",
- fg="gray5", font=("Helvetica ", 15), height=1, bg="LightSteelBlue4")
- title.pack()
- textInput = tkinter.Entry(master=root, text="Type your text here:", fg="gray13",
- width=100, font=("Helvetica", 12), relief="flat", bd=2, bg="LightSteelBlue1")
- textInput.insert(0, "Example text...")
- textInput.pack()
- topFrame = tkinter.Frame(master=root, relief="flat", padx=3, pady=3, width=100, bg="LightSteelBlue4")
- title =tkinter.Label(master=topFrame,text="Write your key value:",
- fg="gray5", font=("Helvetica ", 15), height=1, bg="LightSteelBlue4")
- title.pack(side = tkinter.LEFT, padx = 5, pady = 5)
- keyInput = tkinter.Entry(master=topFrame, text="Type key:", fg="gray13",
- width=100, font=("Helvetica", 12), relief="flat", bd=2, bg="LightSteelBlue1")
- keyInput.pack(side = tkinter.RIGHT, padx = 5, pady = 5)
- topFrame.pack()
- topFrame2 = tkinter.Frame(master=root, relief="flat", padx=3, pady=3, width=100, bg="LightSteelBlue4")
- title2 =tkinter.Label(master=topFrame2,text="Write group number (only need if encrypt:",
- fg="gray5", font=("Helvetica ", 15), height=1, bg="LightSteelBlue4")
- title2.pack(side = tkinter.LEFT, padx = 5, pady = 5)
- groupInput = tkinter.Entry(master=topFrame2, text="Type number:", fg="gray13",
- width=100, font=("Helvetica", 12), relief="flat", bd=2, bg="LightSteelBlue1")
- groupInput.pack(side = tkinter.RIGHT, padx = 5, pady = 5)
- topFrame2.pack()
- bFrame=tkinter.Frame(master=root, relief="flat", padx=3, pady=3, width=100, bg="LightSteelBlue4")
- b1 = tkinter.Button(master=bFrame, text = "Encrypt", font=("Helvetica", 15), fg="gray15",
- relief="flat", bg ="LightSteelBlue2",
- command = lambda:encryptString(textInput.get(),int(keyInput.get()),int(groupInput.get())))
- b1.pack(side = tkinter.LEFT, padx = 5, pady = 5)
- b2 = tkinter.Button(master=bFrame, text = 'Decrypt', font=("Helvetica", 15), fg="gray15",
- relief="flat", bg ="LightSteelBlue2",
- command = lambda:decryptString(textInput.get(),int(keyInput.get())))
- b2.pack(side = tkinter.LEFT, padx = 5, pady = 5)
- b3 = tkinter.Button(master=bFrame, text = 'Back', font=("Helvetica", 15), fg="gray15",
- relief="flat", bg ="LightSteelBlue2", command = mainFrame)
- b3.pack(side = tkinter.RIGHT, padx = 5, pady = 5)
- bFrame.pack()
- def fileInputFrame():
- clearRoot()
- title =tkinter.Label(master=root,text="CRYPTO: File input", fg="gray5", font=("Helvetica ", 25, "bold"), height=1, bg="LightSteelBlue4")
- title.pack()
- title =tkinter.Label(master=root,text="Write text, key value and number of charecters",
- fg="gray20", font=("Helvetica ", 15), height=1, bg="LightSteelBlue4")
- title.pack()
- title =tkinter.Label(master=root,text="in group if you encrypt or only text and key value if decrypt",
- fg="gray20", font=("Helvetica ", 15), height=1, bg="LightSteelBlue4")
- title.pack()
- file = filedialog.askopenfile(parent=root,mode='r',title='Choose a file to encrypt or decrypt...')
- if file:
- data = ""
- for line in file:
- strippedLine = line.rstrip()
- data += strippedLine
- file.close()
- title =tkinter.Label(master=root,text="Your text from file:",
- fg="gray5", font=("Helvetica ", 15), height=1, bg="LightSteelBlue4")
- title.pack()
- textInput = tkinter.Entry(master=root, text="File text:", fg="gray13",
- width=100, font=("Helvetica", 12), relief="flat", bd=2, bg="LightSteelBlue1")
- textInput.insert(0, data)
- textInput.pack()
- topFrame = tkinter.Frame(master=root, relief="flat", padx=3, pady=3, width=100, bg="LightSteelBlue4")
- title =tkinter.Label(master=topFrame,text="Write your key value:",
- fg="gray5", font=("Helvetica ", 15), height=1, bg="LightSteelBlue4")
- title.pack(side = tkinter.LEFT, padx = 5, pady = 5)
- keyInput = tkinter.Entry(master=topFrame, text="Type key:", fg="gray13",
- width=100, font=("Helvetica", 12), relief="flat", bd=2, bg="LightSteelBlue1")
- keyInput.pack(side = tkinter.RIGHT, padx = 5, pady = 5)
- topFrame.pack()
- topFrame2 = tkinter.Frame(master=root, relief="flat", padx=3, pady=3, width=100, bg="LightSteelBlue4")
- title2 =tkinter.Label(master=topFrame2,text="Write group number (only need if encrypt:",
- fg="gray5", font=("Helvetica ", 15), height=1, bg="LightSteelBlue4")
- title2.pack(side = tkinter.LEFT, padx = 5, pady = 5)
- groupInput = tkinter.Entry(master=topFrame2, text="Type number:", fg="gray13",
- width=100, font=("Helvetica", 12), relief="flat", bd=2, bg="LightSteelBlue1")
- groupInput.pack(side = tkinter.RIGHT, padx = 5, pady = 5)
- topFrame2.pack()
- bFrame=tkinter.Frame(master=root, relief="flat", padx=3, pady=3, width=100, bg="LightSteelBlue4")
- b1 = tkinter.Button(master=bFrame, text = "Encrypt", font=("Helvetica", 15), fg="gray15",
- relief="flat", bg ="LightSteelBlue2",
- command = lambda:encryptString(textInput.get(),int(keyInput.get()),int(groupInput.get())))
- b1.pack(side = tkinter.LEFT, padx = 5, pady = 5)
- b2 = tkinter.Button(master=bFrame, text = 'Decrypt', font=("Helvetica", 15), fg="gray15",
- relief="flat", bg ="LightSteelBlue2",
- command = lambda:decryptString(textInput.get(),int(keyInput.get())))
- b2.pack(side = tkinter.LEFT, padx = 5, pady = 5)
- b3 = tkinter.Button(master=bFrame, text = 'Back', font=("Helvetica", 15), fg="gray15",
- relief="flat", bg ="LightSteelBlue2", command = mainFrame)
- b3.pack(side = tkinter.RIGHT, padx = 5, pady = 5)
- bFrame.pack()
- def normalizeText(text):
- result = text.translate({ord(i): None for i in ' .,:;’”!?(){}[]/\|@#$%^&*-_+=`1234567890'}).upper()
- print(result)
- return result
- def caesarify(text,key):
- result = ""
- for i in range(len(text)):
- char = text[i]
- result += chr((ord(char) + key-65) % 26 + 65)
- print(result)
- return result
- def groupify(text, num):
- result = ""
- array = [(text[i:i+num]) for i in range(0, len(text), num)]
- dif = num - len(array[-1])
- for i in range(len(array)):
- if len(array[i])!=len(array[0]) and i != 0:
- result += array[i] + ('x'*dif)
- else:
- result += array[i] + ' '
- print(result)
- return result
- def ungroupify(text):
- while(text[-1]=="x"):
- text = text[:-1]
- result = text.translate({ord(i): None for i in " "})
- print(result)
- return result
- def encryptString(text,key,num):
- text = normalizeText(text)
- text = caesarify(text,key)
- text = groupify(text, num)
- data = str(text)
- resultFrame1 = tkinter.Frame(master=root, relief="flat", padx=3, pady=3, width=100, bg="LightSteelBlue4")
- title1 =tkinter.Label(master=resultFrame1,text="Your encrypted text:",
- fg="gray5", font=("Helvetica ", 25), height=1, bg="LightSteelBlue4")
- title1.pack()
- resultOutput1 = tkinter.Entry(master=resultFrame1, text="encrypted text here:", fg="gray13",
- width=100, font=("Helvetica", 12), relief="flat", bd=2, bg="LightSteelBlue1")
- resultOutput1.insert(0, data)
- resultOutput1.pack(padx = 5, pady = 5)
- resultFrame1.pack()
- def decryptString(text,key):
- text = ungroupify(text)
- text = caesarify(text,key)
- data2 = str(text)
- resultFrame2 = tkinter.Frame(master=root, relief="flat", padx=3, pady=3, width=100, bg="LightSteelBlue4")
- title2 =tkinter.Label(master=resultFrame2,text="Your decrypted text:",
- fg="gray5", font=("Helvetica ", 25), height=1, bg="LightSteelBlue4")
- title2.pack()
- resultOutput2 = tkinter.Entry(master=resultFrame2, text="encrypted text here:", fg="gray13",
- width=100, font=("Helvetica", 12), relief="flat", bd=2, bg="LightSteelBlue1")
- resultOutput2.insert(0, data2)
- resultOutput2.pack(padx = 5, pady = 5)
- resultFrame2.pack()
- root = tkinter.Frame(relief="flat", padx=0.5, pady=0.5, bg="LightSteelBlue4")
- root.pack()
- mainFrame()
- window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement