Документация Engee
Notebook

Метод перестановки

Метод перестановки — это метод шифрования, при котором символы исходного текста меняются местами согласно заранее определенному правилу. Ключевым элементом является порядок перестановки, который определяет, каким образом символы будут перемещаться. Метод перестановки не меняет сами символы. Меняется только их положение в тексте. Этот метод часто используется в сочетании с другими методами шифрования для повышения безопасности передаваемых данных.

В нашем примере мы рассмотрим простой вариант перестановки, при котором выполняется сдвиг всего сообщения на заранее указанное количество символов.

In [ ]:
# Функция для кодирования и декодирования методом перестановки
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
Out[0]:
transform_message (generic function with 2 methods)

Выполним проверку работоспособности функции.

In [ ]:
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)
Приведём ключ к длине строки, отбросив целые длины строк: 1

Исходное сообщение: Engee
Закодированное сообщение: ngeeE
Декодированное сообщение: Engee

Вывод

Как мы видим, по результатам работы данной модели в нашей демонстрации входное и выходное слово совпали, что сведетельствует о корректной работе этой функции.