auch Umformatiert

This commit is contained in:
Wolfgang Nowak 2023-11-21 23:38:43 +01:00
parent 833db410ad
commit 02b0734f0e

89
notizen/n.py Normal file → Executable file
View file

@ -1,5 +1,6 @@
#!/usr/bin/python3 #!/usr/bin/python3
import hashlib,os
import hashlib, os
## funktionen ## funktionen
def a_str(inp, leng): def a_str(inp, leng):
@ -10,18 +11,26 @@ def a_str(inp, leng):
elif len(inp) > leng: elif len(inp) > leng:
inp = inp[:leng] inp = inp[:leng]
return inp return inp
def sha512(passwort): def sha512(passwort):
sha512 = hashlib.sha512() sha512 = hashlib.sha512()
sha512.update(passwort.encode()) sha512.update(passwort.encode())
return sha512.hexdigest() return sha512.hexdigest()
def crypt(text, key_hash): def crypt(text, key_hash):
key_hash = a_str(key_hash,len(text)) key_hash = a_str(key_hash, len(text))
crypted_text = "" crypted_text = ""
for i in range(len(text)): for i in range(len(text)):
crypted_text += chr(ord(text[i]) ^ ord(key_hash[i])) crypted_text += chr(ord(text[i]) ^ ord(key_hash[i]))
return crypted_text return crypted_text
def o(note,mode):
return open(f"{n_path}{note}.txt",mode,encoding="utf-8")
def o(note, mode):
return open(f"{n_path}{note}.txt", mode, encoding="utf-8")
def nlist(): def nlist():
string = "" string = ""
notizen = [] notizen = []
@ -33,24 +42,26 @@ def nlist():
notizen.append(f"{a}"[:-4]) notizen.append(f"{a}"[:-4])
for n in notizen: for n in notizen:
string += f" - {n}:\n" string += f" - {n}:\n"
datei = o(n,"r") datei = o(n, "r")
string += crypt(datei.read() ,passwort)+"\n" string += crypt(datei.read(), passwort) + "\n"
datei.close() datei.close()
return [string,notizen] return [string, notizen]
def neditadd(notiz=str,text=str):
if not notiz+".txt" in os.listdir(n_path): def neditadd(notiz=str, text=str):
if a_note+".txt" in os.listdir(n_path): if not notiz + ".txt" in os.listdir(n_path):
if a_note + ".txt" in os.listdir(n_path):
back = "Notiz gibt es schon." back = "Notiz gibt es schon."
return back return back
back = "neue Notiz angelegt." back = "neue Notiz angelegt."
else: else:
back = "Erfolgreich gespeichert" back = "Erfolgreich gespeichert"
datei = o(notiz,"w") datei = o(notiz, "w")
datei.write(crypt(text, passwort)) datei.write(crypt(text, passwort))
datei.close() datei.close()
return back return back
## variablen ## variablen
passwort = input("Passwort:") passwort = input("Passwort:")
passwort = sha512(passwort) passwort = sha512(passwort)
@ -62,10 +73,11 @@ n_path += tzeichen
if not os.path.exists(f"{n_path}n{tzeichen}"): if not os.path.exists(f"{n_path}n{tzeichen}"):
os.makedirs(f"{n_path}n{tzeichen}") os.makedirs(f"{n_path}n{tzeichen}")
print("Notizenverzeichniss angelegt.") print("Notizenverzeichniss angelegt.")
n_path += "n"+tzeichen n_path += "n" + tzeichen
## start ## start
print(""" Willkommen zu n print(
""" Willkommen zu n
ACHTUNG: Falls du dein Passwort falsch eingibst überprüfe ACHTUNG: Falls du dein Passwort falsch eingibst überprüfe
erst ob deine Notizen richtig angezeigt werden sonnst falls erst ob deine Notizen richtig angezeigt werden sonnst falls
@ -75,14 +87,16 @@ ACHTUNG: Es kann seine das einige Zeichen wie Umlaute falsch
angezeigt werden können. angezeigt werden können.
Was möchtest du machen?: add, edit, read, list, help, exit. Was möchtest du machen?: add, edit, read, list, help, exit.
""") """
)
print(nlist()[0]) print(nlist()[0])
## programmschleife ## programmschleife
while 1: while 1:
action = input(">") action = input(">")
if action == "help": #help if action == "help": # help
print("""Hilfe: print(
"""Hilfe:
edit = Bearbeite eine Notiz. edit = Bearbeite eine Notiz.
read = Zeige eine Notiz an. read = Zeige eine Notiz an.
@ -93,9 +107,11 @@ secure = Wie funktioniert die verschlüsselung.
debug = Zeigt Debug Infos. debug = Zeigt Debug Infos.
exit = Beenden. exit = Beenden.
Bei Fehlern Bitte an Megamichi melden.""") Bei Fehlern Bitte an Megamichi melden."""
if action == "secure": #secure )
print("""Zur Sicherheit: if action == "secure": # secure
print(
"""Zur Sicherheit:
Es wir ein SHA-512 Hash aus dein Passwort erstellt. Es wir ein SHA-512 Hash aus dein Passwort erstellt.
Und mit deinen Notizen und den auf die richtige Länge Und mit deinen Notizen und den auf die richtige Länge
angepassten Hash wir ein One-Time-Pad angewendet. angepassten Hash wir ein One-Time-Pad angewendet.
@ -105,26 +121,27 @@ erst ob deine Notizen richtig angezeigt werden sonst falls
du eine neue Notiz erstellst wird sie anderst verschlüsselt. du eine neue Notiz erstellst wird sie anderst verschlüsselt.
ACHTUNG: Es kann seine Das einige Zeichen wie Umlaute falsch ACHTUNG: Es kann seine Das einige Zeichen wie Umlaute falsch
angezeigt werden können.""") angezeigt werden können."""
if action == "edit": #edit )
if action == "edit": # edit
a_note = input("Notiz Titel:") a_note = input("Notiz Titel:")
text = input("bitte neuen Text einfügen:") text = input("bitte neuen Text einfügen:")
print(neditadd(a_note,text)) print(neditadd(a_note, text))
if action == "read": #read if action == "read": # read
a_note = input("Notiz Titel:") a_note = input("Notiz Titel:")
if a_note+".txt" in os.listdir(n_path): if a_note + ".txt" in os.listdir(n_path):
datei = o(a_note,"r") datei = o(a_note, "r")
print(crypt(datei.read() ,passwort)) print(crypt(datei.read(), passwort))
datei.close() datei.close()
else: else:
print("Notiz gibts nicht.") print("Notiz gibts nicht.")
if action == "add": #add if action == "add": # add
a_note = input("Notiz Titel:") a_note = input("Notiz Titel:")
text = input("bitte neuen Text einfügen:") text = input("bitte neuen Text einfügen:")
print(neditadd(a_note,text)) print(neditadd(a_note, text))
if action == "delete": #delete if action == "delete": # delete
a_note = input("Notiz Titel:") a_note = input("Notiz Titel:")
if a_note+".txt" in os.listdir(n_path): if a_note + ".txt" in os.listdir(n_path):
if input("Wirklich löschen?:") == "ja": if input("Wirklich löschen?:") == "ja":
os.remove(f"{n_path}{a_note}.txt") os.remove(f"{n_path}{a_note}.txt")
print("Notiz gelöscht") print("Notiz gelöscht")
@ -132,12 +149,14 @@ ACHTUNG: Es kann seine Das einige Zeichen wie Umlaute falsch
print("Notiz nicht gelöscht") print("Notiz nicht gelöscht")
else: else:
print("Notiz gibt es nicht.") print("Notiz gibt es nicht.")
if action == "list": #list if action == "list": # list
print(nlist()[0]) print(nlist()[0])
if action == "debug": #debug if action == "debug": # debug
print(f"""Debug Informationen: print(
f"""Debug Informationen:
n_path={n_path} n_path={n_path}
pas_hash={passwort}""") pas_hash={passwort}"""
if action == "exit": #exit )
if action == "exit": # exit
print("Bye") print("Bye")
exit() exit()