Метод перестановки¶
Метод перестановки — это метод шифрования, при котором символы исходного текста меняются местами согласно заранее определенному правилу. Ключевым элементом является порядок перестановки, который определяет, каким образом символы будут перемещаться. Метод перестановки не меняет сами символы. Меняется только их положение в тексте. Этот метод часто используется в сочетании с другими методами шифрования для повышения безопасности передаваемых данных.
В нашем примере мы рассмотрим простой вариант перестановки, при котором выполняется сдвиг всего сообщения на заранее указанное количество символов.
# Функция для кодирования и декодирования методом перестановки
function transform_message(message::String, key::Int, mode::String)
transformed_message = ""
for i in 1:length(message)
if mode == "encode"
new_index = mod(i + key - 1, length(message)) + 1 # Перемещаем символ на key позиций вперед
elseif mode == "decode"
new_index = mod(i - key - 1, length(message)) + 1 # Перемещаем символ на key позиций влево
else
error("Допустимые значения: :encode, :decode")
end
transformed_message *= message[new_index]
end
return transformed_message
end
Выполним проверку работоспособности функции.
message = "Engee";
key = 6;
key = 6 % length(message)
println("Приведём ключ к длине строки, отбросив целые длины строк: $(key)")
println()
encoded = transform_message(message, key, "encode")
decoded = transform_message(encoded, key, "decode")
println("Исходное сообщение: ", message)
println("Закодированное сообщение: ", encoded)
println("Декодированное сообщение: ", decoded)
Вывод¶
Как мы видим, по результатам работы данной модели в нашей демонстрации входное и выходное слово совпали, что сведетельствует о корректной работе этой функции.