转位法¶
置换法是一种加密方法,在这种方法中,源文本中的字符按照预先确定的规则进行交换。关键因素是排列顺序,它决定了字符的移动方式。置换法不会改变字符本身。改变的只是字符在文本中的位置。这种方法通常与其他加密方法结合使用,以提高传输数据的安全性。
在我们的示例中,我们将使用一种简单的置换方法,将整个信息移动预定数量的字符。
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]:
让我们检查一下函数的性能。
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)
输出¶
我们可以看到,根据该模型在我们演示中的结果,输入字和输出字是一致的,这表明该函数工作正常。