Seite 1 von 1

Skript um Texte zu verschlüsseln - Funktioniert das?

Verfasst: Freitag 29. Mai 2015, 14:20
von FeuerElch
Hey Leute!
Ich habe mich mal kurz an dieses kleine Programm gesetzt und mich interessiert ob es überhaupt funktioniert. :D :lol: Ich bin nämlich momentan im Urlaub und kann es selbst nicht ausprobieren (ich schreibe das hier vom Handy). Ich bin noch Anfänger, also wundert euch nicht über vielleicht offensichtliche Fehler ;) Es wprde mich freuen wenn ihr mir Verbesserungsvorschläge gebt
LG
FeuerElch

PS:
Hier ist der Code:

Code: Alles auswählen

option = input ("Möchten Sie codieren (code) oder decodieren (decode) ?")

abc = list ("abcdefghijklmnopqrstuvwxyz")                          #abc als Liste

if option == "code"                                                                 #Option codieren
  text = input ("Geben Sie den zu  codierenden Text ein")   #Text eingeben  
  text = list(text)                                                                    #Text zur Liste machen
  
  code = input("Wie lautet der Schlüssel?")

  codeindex = 0
  index = 0

  for x in range [len (text)]:
     Buchstabe = abc.index (text(index))
     text (index) = buchstabe+code(codeindex)
     
     index = index+1
     codeindex = codeindex+1
     if codeindex == len (code)
         codeindex = 0
  print (.join(text))
  
PPS : Die Formatierung wurde irgendwie nicht übernommen weil mir am Hsndy Tab gefehlt hat ;)

Re: Skript um Texte zu verschlüsseln - Funktioniert das?

Verfasst: Freitag 29. Mai 2015, 14:43
von /me
FeuerElch hat geschrieben:Es wprde mich freuen wenn ihr mir Verbesserungsvorschläge gebt
Das ist völlig verkorkst. Warte bis du wieder einen Rechner mit Python hast, versuche das Programm laufen zu lassen, entferne offensichtliche Fehler und frag dann noch mal.

Re: Skript um Texte zu verschlüsseln - Funktioniert das?

Verfasst: Freitag 29. Mai 2015, 15:15
von /me
Gesetzt den Fall, dass ich den beabsichtigten Code korrekt verstanden habe, sollte das etwa so etwas werden.

Code: Alles auswählen

from itertools import cycle

def character_to_number(char):
    return ord(char) - ord('a')

def number_to_character(number):
    return chr(number % 26 + ord('a'))

def coder(text, code):
    result = []
    for char, code_char in zip(text, cycle(code)):
        char_number = character_to_number(char)
        code_number = character_to_number(code_char)
        result.append(number_to_character(char_number + code_number))
    return ''.join(result)


def main():
    print(coder('abcdefghi', 'abc'))

if __name__ == '__main__':
    main()
Auch dieser Code ist noch nicht wirklich schön und hat noch Limitierungen, aber das reicht mir jetzt erst mal.

Re: Skript um Texte zu verschlüsseln - Funktioniert das?

Verfasst: Freitag 29. Mai 2015, 15:43
von darktrym
Ist das nicht Vigenere?

Re: Skript um Texte zu verschlüsseln - Funktioniert das?

Verfasst: Freitag 29. Mai 2015, 18:54
von nomnom
darktrym hat geschrieben:Ist das nicht Vigenere?
Doch.

Re: Skript um Texte zu verschlüsseln - Funktioniert das?

Verfasst: Freitag 29. Mai 2015, 19:36
von nomnom
So würde ich das implementieren.

Code: Alles auswählen

import itertools

from string import ascii_lowercase as abc

def vigenere(string, key, encode):
    def new_index(a, b):
        if encode:
            n = abc.index(a) + abc.index(b)
        else:
            n = abc.index(a) - abc.index(b)
        return abc[n % 26]
    return ''.join(
        itertools.starmap(new_index, zip(string, itertools.cycle(key)))
    )


def encode(plaintext, key):
    return vigenere(plaintext, key, True)


def decode(ciphertext, key):
    return vigenere(ciphertext, key, False)

Re: Skript um Texte zu verschlüsseln - Funktioniert das?

Verfasst: Mittwoch 24. Januar 2018, 17:04
von ruedi_br
Recht und schön, aber vorher sollten Leerzeichen usw. gestrippt werden. :idea:

Re: Skript um Texte zu verschlüsseln - Funktioniert das?

Verfasst: Mittwoch 24. Januar 2018, 17:10
von __deets__
ruedi_br hat geschrieben:Recht und schön, aber vorher sollten Leerzeichen usw. gestrippt werden. :idea:
Du hast ein bisschen die Leichenfledderei angefangen. Der Thread ist >2 Jahre alt.