2012-03-01 4 views
2

Вот пример:Шифрование сообщения с использованием циклического CYPHER

  • Обычная: АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ
  • Сдвиг = 4
  • Шифр: DEFGHIJKLMNOPQRSTUVWXYZABC

Вот код:

print ("This is a cyclic cipher program that will encrypt messages.") 

#phrase = input("Please enter a phrase to encrypt.") 
phrase = "ABCDEFG" 
#shift_value = int(input ("Please enter a shift value between 1 - 5.")) 
shift_value = 1 
encoded_phrase = "" 
ascii_codes = 0 
x = "" 
#accepted_ascii_codes = range(65,90) and range(97,122) 

for c in phrase: 
ascii_codes = ord(c) # find ascii codes for each charcter in phrase 
ascii_codes = ascii_codes + shift_value # add an integer (shift value) to ascii codes 
phrase_rest = chr(ascii_codes) # convert ascii codes back to characters 
encoded_phrase = encoded_phrase + C# stores the phrase character in a new variable 
encoded_phrase = encoded_phrase.replace(c,phrase_rest) # replace original character 

print (phrase) # prints "ABCDEFG" 
print (encoded_phrase) # prints "HHHHHHH" 

ответ

0

Вы повторно используете Одинг вашего cyphered письма на каждый цикле, это будет делать трюк:

for c in phrase: 
    ascii_codes = ord(c) # find ascii codes for each charcter in phrase 
    ascii_codes = ascii_codes + shift_value # add an integer (shift value) to ascii codes 
    phrase_rest = chr(ascii_codes) # convert ascii codes back to characters 
    encoded_phrase = encoded_phrase + phrase_rest # stores the phrase character in a new variable 

однако, вы можете создать словарь с оригинальным письмом и cyphered один. Затем вы зациклитесь на них и получите зашифрованное предложение. Например:

cypher = {'a': 'x', 'b': 'y', ... } 
encoded = '' 
for c in phrase: 
    encoded += cypher[c] 
+0

Спасибо FMC! Я не знаком со словарями, но я попробую. – Mavvy1981

Смежные вопросы