В настоящее время я работаю над домашним заданием, и нам нужно создать функцию, в которой мы создадим трехэтапную программу шифрования / дешифрования. Один из шифров, который мы должны построить, - это перестановка / ограждение, которое принимает переменную (n) в качестве числа «рельсов», в которые вы хотели бы зашифровать сообщение. Я построил шифрование, но я м при потере метода дешифрования.
Это для начального уровня в python, поэтому мы не знаем слишком много за основами, такими как код шифрования, который включен ниже.
Если вы не уверены, что я подразумеваю под транспонированием шифрования / ограждения рельсов, вот пример ...
Message = abcdefg
n = 3
В конечном итоге он будет зашифрован на 3 группы (как отмечено n), и эти группы будут "adg be cf"
, и оттуда шифрование объединит их в одну строку "adgbecf"
. Моя проблема - разбить их обратно на три исходных строки "adg be cf"
, а затем перенести их обратно в исходные значения.
Шифрование:
def trans_encrypt(message, n):
cipher = ""
for i in range(n):
for j in range(i, len(message), n):
cipher = cipher + message[j]
return cipher
Текущее дешифрование (не работает):
def trans_decrypt(cipher, n):
length = len(cipher) // n
message = ''
for i in range(length):
for j in range(n):
letter = (i + j * length)
message = message + cipher[letter]
return message