2017-09-25 4 views
0

Ich muss einen von Benutzern bereitgestellten Klartext mit Caesar Cipher verschlüsseln. Konvertieren jedes Klartextzeichens in seinen ASCII-Wert (Ganzzahl) und Speichern in einer Liste. Ich habe wie diesesCaesar Cipher in Python (unerwarteter Fehler)

print("This program uses a Caesar Cipher to encrypt a plaintext message using the encryption key you provide.") 
plaintext = input("Enter the message to be encrypted:") 
plaintext = plaintext.upper() 
n = eval(input("Enter an integer for an encrytion key:")) 
ascii_list = [] 

# encipher 
ciphertext = "" 
for x in range(len(plaintext)): 
    ascii_list[x] = plaintext (ascii_list) + n %26 
    print() 

getan Aber Fehler erscheint als wie folgt aus:

TypeError: 'str' object is not callable 

ich das Ergebnis wollen kommen: so viele verschiedene Möglichkeiten

This program uses a Caesar Cipher to encrypt a plaintext message using the encryption key you provide. 
Enter the message to be encrypted: Boiler Up Baby! 
Enter an integer for an encrytion key: 1868 
The fully encoded message is: CWOTFZ&]QCHICa' 

Ich habe versucht, aber Das Ergebnis kommt nicht heraus.

+3

Was erwarten Sie von 'plaintext (ascii_list)'? –

Antwort

1

Sie müssen die ursprünglichen Zeichen zu Zahlen analysieren, fügen Sie den Schlüssel zu ihnen hinzu und analysieren Sie sie dann zu Zeichen zurück.

In Ihrem Code muss ascii_list[x] in ascii_list.append() geändert werden, da Sie einen Index referenzieren, der nicht existiert. Auch plaintext ist keine Funktion, die Sie anrufen können, es ist nur Ihre erste Nachricht in Großbuchstaben.

Sie können dies tun:

for x in range(len(plaintext)): 
    ascii_list.append(chr(ord(plaintext[x]) + n)) 
print(ascii_list) 

Hinweis: Die Eingabe/Ausgabe (in: Boiler Up Baby!, aus: CWOTFZ&]QCHICa') vorausgesetzt, Sie ist nicht typisch Caesar-Chiffre, wie einige der Buchstaben in Symbole verwandeln und auch die Symbole sind codiert. Bei Verwendung dieser Lösung werden nur die Schlüssel nach oben verschoben, was bedeutet, dass zum Beispiel Z niemals A wird. Wenn Sie eine geeignete Caesar-Verschlüsselungslösung benötigen, können Sie sich diese Frage ansehen: Caesar Cipher Function in Python

Verwandte Themen