排列方法
排列方法是一种加密方法,其中源文本的字符根据预定义的规则进行交换。 关键元素是排列顺序,它决定了字符将如何移动。 排列方法不会改变字符本身。 只有它们在文本中的位置发生变化。 这种方法经常与其他加密方法结合使用,以增强传输数据的安全性。
在我们的示例中,我们将考虑一个简单的排列选项,该选项将整个消息按预先指定的字符数移位。
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 # 按关键位置向前移动符号
elseif mode == "decode"
new_index = mod(i - key - 1, length(message)) + 1 # 将符号按键位置向左移动
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)
结论
正如我们所看到的,根据我们演示中该模型的结果,输入和输出词重合,这表明该功能正常工作。