Skip to content

Commit

Permalink
Add a py program
Browse files Browse the repository at this point in the history
  • Loading branch information
sarath-pm committed Jun 27, 2022
1 parent a21caaa commit 6ddeafb
Showing 1 changed file with 162 additions and 0 deletions.
162 changes: 162 additions & 0 deletions encrypt_decrypt.py
Original file line number Diff line number Diff line change
@@ -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()

0 comments on commit 6ddeafb

Please sign in to comment.