Сделать шифр невидимым
Eсть шифр Бэкона, надо исправить чтоб шифр стал невидимый, A-пробел B-табуляция
Код:
message=str(input("Введите сообщение:"))
keys = {'A':'aaaaa', 'B':'aaaab', 'C':'aaaba', 'D':'aaabb',
'E':'aabaa', 'F':'aabab', 'G':'aabba', 'H':'aabbb',
'I':'abaaa', 'J':'abaab','K':'ababa', 'L':'ababb',
'M':'abbaa', 'N':'abbab', 'O':'abbba','P':'abbbb',
'Q':'baaaa', 'R':'baaab', 'S':'baaba', 'T':'baabb' ,
'U':'babaa', 'V':'babab', 'W':'babba', 'X':'babbb',
'Y':'bbaaa', 'Z':'bbaab', ' ':'bbaba'}
encrypt = ""
for i in message:#перебираем по символу сообщение
for j in keys:#перебираем кейс
if i == j:
encrypt+=keys[i]
print(encrypt)
decrypt = "" ; k = "" # k-счётчик
for i in encrypt: #перебираем по encrypt
k += i
if len(k) == 5:
for j in keys:#перебираем кейс
if k == keys[j]:
decrypt += j
k = ""#обнуление
print(decrypt)
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Заменяем a на , b на \t, можно это сделать автоматически:
keys = {k:v.replace('a',' ').replace('b','\t') for k,v in keys.items()}
print(keys)
Вывод:
{'A': ' ', 'B': ' \t', 'C': ' \t ', 'D': ' \t\t', 'E': ' \t ', 'F': ' \t \t', 'G': ' \t\t ', 'H': ' \t\t\t', 'I': ' \t ', 'J': ' \t \t', 'K': ' \t \t ', 'L': ' \t \t\t', 'M': ' \t\t ', 'N': ' \t\t \t', 'O': ' \t\t\t ', 'P': ' \t\t\t\t', 'Q': '\t ', 'R': '\t \t', 'S': '\t \t ', 'T': '\t \t\t', 'U': '\t \t ', 'V': '\t \t \t', 'W': '\t \t\t ', 'X': '\t \t\t\t', 'Y': '\t\t ', 'Z': '\t\t \t', ' ': '\t\t \t '}