I would say its flawless but something puzzles me about it Vernam Crypto requires a truly random series of characters to encrypt the message but Im using the python module random.sample Im sure it would be hard to decrypt but none the less I debate how random the random module is in Python or any computer application/language maybe I will start another post discussing that
Anyway here is the code

Cheers Maboroshi
Code: Select all
from pycipher import *
from Tkinter import *
import random
def getMessage():
global message
message = message_entry.get()
textbox.insert(END, message + "\n\n")
def createKey():
key = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrsrstuvwxyz0123456789"
global thegenkey
thegenkey = ''.join(random.sample(str(key), len(message)))
textbox.insert(END, "The Generated Vernam Key\n\n")
global ciphertext
ciphertext = Vernam(message).encipher(thegenkey)
textbox.insert(END, ciphertext)
def decipherit():
deciphertext = Vernam(ciphertext).decipher(thegenkey)
textbox.insert(END, "\n\nThe Decrypted Vernam Message\n\n")
textbox.insert(END, deciphertext)
root = Tk()
root.title("Vernam Crypto Script")
frame = Frame(root)
message_entry = Entry(frame)
message_entry.pack(side=LEFT)
button = Button(frame, text="Get Message", command=getMessage)
button2 = Button(frame, text="Encrypt", command=createKey)
button3 = Button(frame, text="Decrypt", command=decipherit)
button.pack(side=LEFT)
button2.pack(side=LEFT)
button3.pack(side=LEFT)
frame.pack()
frame2 = Frame(root)
textbox = Text(frame2)
textbox.pack(fill=BOTH, expand=TRUE)
frame2.pack(fill=BOTH, expand=TRUE)
root.mainloop()