#!/usr/bin/env python3 # PROGRAM SMS2 # Version fuer das faible-Projekt # Version: 20.5.2024 # Autor: Arno Pasternak # Das Programm unterliegt der GPL, Version 3 # ========================================== import os class SatzKlasse: def __init__(self): self.satz = "Dies ist ein neuer Satz" # print self.satz def einlesen(self): print ("Bitte Satz eingeben: ") self.satz = input() print (self.satz) def ausgeben(self): print (self.satz) def verschluesseln(self, codewort): buchstabe = "" codebuchstabe = "" asciizahl = 0 codeasciizahl = 0 codestelle = 0 verschluesselter_satz = "" stelle = 0 codestelle = 0 while stelle < len(self.satz): buchstabe = self.satz[stelle] codebuchstabe = codewort[codestelle] asciizahl = ord(buchstabe) codeasciizahl = ord(codebuchstabe) asciizahl = asciizahl + codeasciizahl - 64 buchstabe = chr(asciizahl) verschluesselter_satz = verschluesselter_satz + buchstabe stelle = stelle + 1 codestelle = codestelle + 1 if codestelle == len(codewort): codestelle = 0 self.satz = verschluesselter_satz def entschluesseln(self, codewort): buchstabe = "" codebuchstabe = "" asciizahl = 0 codeasciizahl = 0 codestelle = 0 entschluesselter_satz = "" stelle = 0 while stelle < len(self.satz): buchstabe = self.satz[stelle] codebuchstabe = codewort[codestelle] asciizahl = ord(buchstabe) codeasciizahl = ord(codebuchstabe) asciizahl = asciizahl - codeasciizahl + 64 buchstabe = chr(asciizahl) entschluesselter_satz = entschluesselter_satz + buchstabe stelle = stelle + 1 codestelle = codestelle + 1 if codestelle == len(codewort): codestelle = 0 self.satz = entschluesselter_satz def senden(self, dateiname): datei = open(dateiname, "w") datei.write(self.satz) datei.close() def holen(self, dateiname): if not os.path.exists(dateiname): self.satz = "SMS nicht vorhanden" else: datei = open(dateiname) self.satz = datei.readline() datei.close() # Ende Satzklasse # ========================================================= # BEGINN des Programms print("") print("==============================================================") print(" SMS Programm mit Vigenere-Verschlüsselung") print("==============================================================") print("==============================================================") print("") print("") sms = None codewort = None teilnehmer = None absender = None empfaenger = None wahl = None codewort = chr(0) print("") print("Bitte gib Deinen Namen an: ") teilnehmer = input("") sms = SatzKlasse() wahl = "" while wahl != "Q": print("") print("==============================================================") print("E: Einlesen ** A: Ausgeben") print("S: Senden ** H: Holen") print("V: Verschlüsseln ** D: Entschlüsseln") print("Z: Zeigen alle SMS ** C: Codewort eingeben") print("Q: QUIT") print("") print("Bitte wählen: ") wahl = input("") wahl = wahl.upper() print("") print("--------------------------------------------------------------") if wahl == 'Z': import subprocess subprocess.call(["./verzeichnis.sh"]) if wahl == 'C': print("Bitte Codewort eingeben: ") codewort = input() if wahl == 'E': sms.einlesen() if wahl == 'A': sms.ausgeben() if wahl == 'S': print("Bitte Empfänger eingeben: ") empfaenger = input() sms.senden("%s_%s.sms" % (empfaenger, teilnehmer)) print("Die SMS wurde versandt.") if wahl == 'H': print("Bitte Absender eingeben: ") absender = input() sms.holen("%s_%s.sms" % (teilnehmer, absender)) print("Folgende SMS wurde erhalten:") sms.ausgeben() if wahl == 'V': sms.verschluesseln(codewort) print("Verschlüsselt: ") sms.ausgeben() if wahl == 'D': sms.entschluesseln(codewort) print("Entschlüsselt: ") sms.ausgeben() # ENDE des Programmes