Python - tkinter text eingabe in variable?

Hallo,

ich habe folgendes programmiert:

import tkinter as tk
import os


root = tk.Tk()
root.geometry("400x240")


def encrypt(filename):
    to_encrypt = open(filename, "rb").read()
    size = len(to_encrypt)
    key = os.urandom(size)
    with open(filename + ".lqk", "wb") as key_out:
        key_out.write(key)
    encrypted = bytes(a ^ b for (a, b) in zip(to_encrypt, key))
    with open(filename, "wb") as encrypted_out:
        encrypted_out.write(encrypted)  
    filename = textExample.get(1.0, tk.END+"-1c")
    encrypt(filename)




def decrypt(filename, key):
    file = open(filename, "rb").read()
    key = open(key, "rb").read()
    decrypted = bytes(a ^ b for (a, b) in zip(file, key))
    with open(filename, "wb") as decrypted_out:
        decrypted_out.write(decrypted)
    fileTest = filename + ".lqk"
    try:
        os.remove(fileTest)
    except OSError as e:
        print(e)
    else:
        print("Datei erfolgreich gelöscht!")
    filename = textExample.get(1.0, tk.END+"-1c")
    decrypt(filename, filename + ".lqk")
    
    


textExample=tk.Text(root, height=10)
textExample.pack()
btnEncrypt=tk.Button(root, height=1, width=10, text="Encrypt", 
                    command=encrypt)
btnDecrypt=tk.Button(root, height=1, width=10, text="Decrypt", 
                    command=decrypt)


btnEncrypt.pack()
btnDecrypt.pack()


root.mainloop()

Nur leider funktioniert dies nicht. In der Debugging Console bekomme ich folgende Fehlermeldung:

Bei der Encrypt Funktion:

PS C:\Users\elias\Desktop\Python>  c:; cd 'c:\Users\elias\Desktop\Python'; & 'C:\Users\elias\AppData\Local\Programs\Python\Python310\python.exe' 'c:\Users\elias\.vscode\extensions\ms-python.python-2021.12.1559732655\pythonFiles\lib\python\debugpy\launcher' '52518' '--' 'c:\Users\elias\Desktop\Python\main.py'
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\elias\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1921, in __call__
    return self.func(*args)
TypeError: encrypt() missing 1 required positional argument: 'filename'


Decrypt Funktion:

Traceback (most recent call last):
  File "C:\Users\elias\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1921, in __call__
    return self.func(*args)
TypeError: decrypt() missing 2 required positional arguments: 'filename' and 'key'      


Wie kann ich das Problem jetzt lösen?

Danke im Vorraus!

VG!

programmieren, Python, Python 3, Tkinter
Mit Handy fake Wlan?

Hi,

In der Schule haben wir momentan das Thema Sicherheit im Internet. Nach den Sommerferien sollen wir etwas demonstrieren, was darstellt, wie groß die Gefahr im Netz ist.

Als Idee habe ich, dass ich mit dem Handy alleine ein Fake Wlan erstelle mit einer "Im Wlan anmelden" Seite. Die dürfte jedem bekannt sein... Sehr viele Menschen nutzen immer die gleichen Passwörter, weshalb es einfach ein Feld gibt wo man eine Email eingeben muss und eins für ein Passwort. Die Daten werden dann einfach gespeichert und schon werden viele in meine "Falle" getappt sein. Die Daten werde ich selbstverständlich danach löschen. Ich möchte keinen Stress mit denen. Ich halte diese Idee aber für recht sinnvoll für unser Thema.

Falls jemand eine bessere Idee in diese Richtung hat, gerne melden.

Mein Wissen:

Es gibt sowas ähnliches namens Fake access Point nur das das dann halt alles angreift, was man am Handy im Wlan macht. Bei mir soll jedoch kein Wlan freigegeben werden, da ich dafür einen wlan Stick vermutlich brauche.

Also es soll kein Wlan freigegeben werden. Kann man dann auch eine Nachricht ans Handy schicken, wie z.B. du wurden reingelegt?

Das war mit meinem Wissen.

Falls ich es brauche: Ich habe Kenntnisse in Python und ein sehr wenig in Thermux...

Konstruktives Feedback nehme ich sehr gerne an. Wenn ihr die Idee für Schwachsinn haltet lasst es mich gerne mit ner Begründung wissen.

Danke im Voraus

Internet, WLAN, Hacking, Python

Meistgelesene Beiträge zum Thema Python