2017-01-24 9 views
1

Вот мой код:Шифрование с собственным Cipher Словарь

dictionary = {'A':'3', 
'B':'u', 
'C':'t', 
'D':'5', 
'E':'b', 
'F':'6', 
'G':'7', 
'H':'8', 
'I':'/', 
'J':'9', 
'K':'0', 
'L':'-', 
'M':'o', 
'N':'i', 
'O':';', 
'P':'}', 
'Q':'c', 
'R':'n', 
'S':'4', 
'T':'m', 
'U':'.', 
'V':'y', 
'W':'v', 
'X':'r', 
'Y':',', 
'Z':'e', 
} 
print(dictionary) 
inp = input(str("What do you want me to encode?").upper()).upper() 
li = list(inp) 
print(li) 
for letter in inp: 
    pass 

Я хочу спросить, как я мог бы использовать этот словарь, чтобы зашифровать любое сообщение, которое проходит через вход. Как «Привет, меня зовут Джерри», он превратится в: (Без фраз) '8b--; o, i3ob/4 9bnn, '. Не мог бы кто-нибудь помочь мне в этом. Я видел другие вопросы, подобные этому, но они используют PyCrypto. Я не хочу, чтобы вы столкнулись с трудностями при установке. Может кто-то, пожалуйста, помогите мне.

Спасибо, Jerry

+0

BTW Этот код совершенно новый - для него есть намного больше, чем то, что я здесь помещаю, - но оболочка напечатала бы ошибку, если бы включила ее. Мой друг создал математический. Гораздо проще кодировать. – JerryPlayz101

+0

Проверьте, не импортированы ли все модули. – Viney

ответ

2

Вам необходимо пройти каждый символ пользовательского ввода через словарь, чтобы получить Cypher отдачу.

# removed the first .upper() here 
inp = input(str("What do you want me to encode?")).upper() 
li = list(inp) 
print(li) 

# create a list of letters passed through the dictionary 
out = [dictionary[letter] for letter in inp] 

# using ''.join makes the new list a single string 
print(''.join(out)) 
+0

. Я получаю сообщение об ошибке @James, где я вставляю текст: Привет, мой и появляется ошибка: Недействительный синтаксис. Почему он это делает? Я хочу, чтобы шифровальщик мог делать несколько слов – JerryPlayz101

+0

На втором, хотя - этого ответа достаточно. Я могу работать с ним. – JerryPlayz101

0

Вы можете использовать метод str.translate. Преимущество здесь в том, что вам нужно создать таблицу один раз, поэтому вы можете использовать ту же таблицу, даже если у вас есть много строк для шифрования.

table = str.maketrans(dictionary) # create a translate table 

inp = input("What do you want me to encode? ").upper() 
res = inp.translate(table) 
print(res) 

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

  • Нет связанных вопросов^_^