CODE:
from tkinter import *
from tkinter.filedialog import askopenfilename, asksaveasfilename
ews = 3
xds = True
while xds:
password = input("ENTER A 7 DIGIT PASSWORD: ")
if password == "encrypt":
xds = False
def open_file():
"""Open a file for editing."""
filepath = askopenfilename(
filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")]
)
if not filepath:
return
txt_edit.delete("1.0", END)
with open(filepath, mode="r", encoding="utf-8") as input_file:
text = input_file.read()
txt_edit.insert(END, text)
window.title(f"Decoder - {filepath}")
def save_file():
"""Save the current file as a new file."""
filepath = asksaveasfilename(
defaultextension=".txt",
filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")],
)
if not filepath:
return
with open(filepath, mode="w", encoding="utf-8") as output_file:
text = txt_edit.get("1.0", END)
output_file.write(text)
window.title(f"Decoder - {filepath}")
def decode(strt, num):
y = ""
for i in strt:
print(i)
print(ord(i))
print(ord(i)-num)
y += chr(ord(i)-num)
return (y)
def encode(str, num):
y = ""
for i in str:
y+=chr(ord(i)+num)
return(y)
def decode_file(r):
s = txt_edit.get("1.0", END)
print(s)
x = decode(s, r)
txt_edit.delete("1.0", END)
txt_edit.insert(END, x)
def encode_file(r):
s = txt_edit.get("1.0", END)
x = encode(s, r)
txt_edit.delete("1.0", END)
txt_edit.insert(END, x)
def clear():
txt_edit.delete("1.0", END)
window = Tk()
window.title("Decoder")
def enter():
global ews
z = e.get()
if z.isnumeric():
z = int(z)
if z<=50000 and z >=1:
ews = z
def test():
global ews
encode_file(ews)
def test2():
global ews
decode_file(ews)
window.rowconfigure(0, minsize=1300, weight=1)
window.columnconfigure(1, minsize=800, weight=1)
txt_edit = Text(window)
frm_buttons = Frame(window, relief=RAISED, bd=2)
btn_open = Button(frm_buttons, text="Open", command=open_file)
btn_save = Button(frm_buttons, text="Save As...", command=save_file)
btn_encode = Button(frm_buttons, text = "Encrypt", command = test)
btn_decode = Button(frm_buttons, text = "Decrypt", command = test2)
btn_clear = Button(frm_buttons, text = "Clear", command = clear)
btn_enter = Button(frm_buttons, text = "ENTER", command = enter)
l = Label(frm_buttons,text = "ENCRYPTION CODE:", fg = "black")
e = Entry(frm_buttons)
btn_open.grid(row=0, column=0, sticky="ew", padx=5, pady=5)
btn_save.grid(row=1, column=0, sticky="ew", padx=5, pady = 5)
btn_encode.grid(row=2, column=0, sticky="ew", padx=5, pady=5)
btn_decode.grid(row=3, column=0, sticky="ew", padx=5, pady=5)
btn_clear.grid(row=4, column=0, sticky="ew", padx=5, pady=5)
l.grid(row = 5, column = 0, sticky = "ew", padx = 5, pady = 5)
e.grid(row=6, column=0, sticky="ew", padx=5, pady=5)
btn_enter.grid(row=7, column=0, sticky="ew", padx=5, pady=5)
frm_buttons.grid(row=0, column=0, sticky="ns")
txt_edit.grid(row=0, column=1, sticky="nsew")
window.mainloop()
else:
print("INVALID")
Error code: line 42, in decode y += chr(ord(i)-num) ValueError: chr() arg not in range(0x110000)
What is happening is that the chr() value is going negative (I tested it with some print statements) but I would like to know how to solve it. I need to add details so the code is basically trying to make a decryption and encryption software.
EDIT: after modifying this:
def enter():
global ews
z = e.get()
if z.isnumeric():
z = int(z)
if z<=31 and z >=1:
ews = z
it still has the same error code.