auch Umformatiert

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

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

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