Как подогнать уравнение для шифрования так, чтобы шифровалось все правильно?
Вот это уравнение: 4*(int(y)+1)-(int(x)+1).
def encode(text, xkeys, ykeys):
return ''.join(text[4*(int(y)+1)-(int(x)+1)] for y in ykeys for x in xkeys)#ТУТ ПОДГОНЯТЬ УРАВНЕНИЕ ТАК, ЧТОБЫ ПРИ ШИФРОВКИ "ПРИЛЕТАЮВОСЬМОГО" ПОЛУЧАЛОСЬ "ТЮАЕООГМРЛИПОЬСВ"
def decode(text, xkeys, ykeys):
return ''.join(text[4*(int(y)-1)+(int(x)-1)] for y in ykeys for x in xkeys)
xkeys = "4132"
ykeys = "3142"
print (xkeys)
print (ykeys)
ciphertext = encode(u'ПРИЛЕТАЮВОСЬМОГО', xkeys, ykeys)#Надо чтобы результат этого шифрования был ТЮАЕООГМРЛИПОЬСВ. Для этого нужно изменять уравнение в def encode так, чтобы оно было обратным выражением тому, что в def decode.
if ciphertext != "ТЮАЕООГМРЛИПОЬСВ":
print(ciphertext)
print ("Уравненпие не верно, подгоняйте дальше...")
else:
print(ciphertext)
print ("Уравнение правильное. Напишите мне.")
text = decode(ciphertext, xkeys, ykeys)
if text != "ПРИЛЕТАЮВОСЬМОГО":
print(text)
print ("Кодированый текст не правильно расшифровался, подгоняйте encode дальше...")
else:
print(ciphertext)
print ("Уравнение правильное. Напишите мне.")
text = decode(u'ТЮАЕООГМРЛИПОЬСВ', xkeys, ykeys)#Как должна проходть расшифровка
print(text)