From 6ddeafb6c8d8c77a1a61849d47cc2afbc769e435 Mon Sep 17 00:00:00 2001 From: Sarath P M Date: Mon, 27 Jun 2022 13:04:40 +0530 Subject: [PATCH] Add a py program --- encrypt_decrypt.py | 162 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 encrypt_decrypt.py diff --git a/encrypt_decrypt.py b/encrypt_decrypt.py new file mode 100644 index 0000000..2f28daa --- /dev/null +++ b/encrypt_decrypt.py @@ -0,0 +1,162 @@ +''' +Requirements + +# pip install tk +''' + +from tkinter import * +import base64 +import random +import time +import datetime + +root = Tk() +root.geometry("1200x6000") +root.title("Encrypt & Decrypt secret message") + +Tops = Frame(root, width = 1600, relief = SUNKEN) +Tops.pack(side = TOP) + +f1 = Frame(root, width = 800, height = 700, + relief = SUNKEN) +f1.pack(side = LEFT) + +localtime = time.asctime(time.localtime(time.time())) + +lblInfo = Label(Tops, font = ('helvetica', 50, 'bold'), + text = "Encrypt & Decrypt You Messages", + fg = "Black", bd = 10, anchor='w') + +lblInfo.grid(row = 0, column = 0) + +lblInfo = Label(Tops, font=('arial', 20, 'bold'), + text = localtime, fg = "Steel Blue", + bd = 10, anchor = 'w') + +lblInfo.grid(row = 1, column = 0) + +rand = StringVar() +Msg = StringVar() +key = StringVar() +mode = StringVar() +Result = StringVar() + +def qExit(): + root.destroy() + +def Reset(): + rand.set("") + Msg.set("") + key.set("") + mode.set("") + Result.set("") + +lblReference = Label(f1, font = ('arial', 16, 'bold'), + text = "Name:", bd = 16, anchor = "w") + +lblReference.grid(row = 0, column = 0) + +txtReference = Entry(f1, font = ('arial', 16, 'bold'), + textvariable = rand, bd = 10, insertwidth = 4, + bg = "powder blue", justify = 'right') + +txtReference.grid(row = 0, column = 1) + +lblMsg = Label(f1, font = ('arial', 16, 'bold'), + text = "MESSAGE", bd = 16, anchor = "w") + +lblMsg.grid(row = 1, column = 0) + +txtMsg = Entry(f1, font = ('arial', 16, 'bold'), + textvariable = Msg, bd = 10, insertwidth = 4, + bg = "powder blue", justify = 'right') + +txtMsg.grid(row = 1, column = 1) + +lblkey = Label(f1, font = ('arial', 16, 'bold'), + text = "KEY", bd = 16, anchor = "w") + +lblkey.grid(row = 2, column = 0) + +txtkey = Entry(f1, font = ('arial', 16, 'bold'), + textvariable = key, bd = 10, insertwidth = 4, + bg = "powder blue", justify = 'right') + +txtkey.grid(row = 2, column = 1) + +lblmode = Label(f1, font = ('arial', 16, 'bold'), + text = "MODE(e for encrypt, d for decrypt)", + bd = 16, anchor = "w") + +lblmode.grid(row = 3, column = 0) + +txtmode = Entry(f1, font = ('arial', 16, 'bold'), + textvariable = mode, bd = 10, insertwidth = 4, + bg = "powder blue", justify = 'right') + +txtmode.grid(row = 3, column = 1) + +lblService = Label(f1, font = ('arial', 16, 'bold'), + text = "The Result-", bd = 16, anchor = "w") + +lblService.grid(row = 2, column = 2) + +txtService = Entry(f1, font = ('arial', 16, 'bold'), + textvariable = Result, bd = 10, insertwidth = 4, + bg = "powder blue", justify = 'right') + +txtService.grid(row = 2, column = 3) + +def encode(key, clear): + enc = [] + + for i in range(len(clear)): + key_c = key[i % len(key)] + enc_c = chr((ord(clear[i]) + + ord(key_c)) % 256) + + enc.append(enc_c) + + return base64.urlsafe_b64encode("".join(enc).encode()).decode() + +def decode(key, enc): + dec = [] + + enc = base64.urlsafe_b64decode(enc).decode() + for i in range(len(enc)): + key_c = key[i % len(key)] + dec_c = chr((256 + ord(enc[i]) - + ord(key_c)) % 256) + + dec.append(dec_c) + return "".join(dec) + + +def Ref(): + print("Message= ", (Msg.get())) + + clear = Msg.get() + k = key.get() + m = mode.get() + + if (m == 'e'): + Result.set(encode(k, clear)) + else: + Result.set(decode(k, clear)) + +btnTotal = Button(f1, padx = 16, pady = 8, bd = 16, fg = "black", + font = ('arial', 16, 'bold'), width = 10, + text = "Show Message", bg = "powder blue", + command = Ref).grid(row = 7, column = 1) + +btnReset = Button(f1, padx = 16, pady = 8, bd = 16, + fg = "black", font = ('arial', 16, 'bold'), + width = 10, text = "Reset", bg = "green", + command = Reset).grid(row = 7, column = 2) + +btnExit = Button(f1, padx = 16, pady = 8, bd = 16, + fg = "black", font = ('arial', 16, 'bold'), + width = 10, text = "Exit", bg = "red", + command = qExit).grid(row = 7, column = 3) + +root.mainloop() \ No newline at end of file