我一直在尝试为基本加密开发一种好的转置方法(不会在现实中使用)
这是否符合要求:
for (int k = 0; k < Plaintext.Length; k++) //transpose
{
Swapchars(ResultArray, k, (key.length * k) % Plaintext.Length);
}
谢谢!
我一直在尝试为基本加密开发一种好的转置方法(不会在现实中使用)
这是否符合要求:
for (int k = 0; k < Plaintext.Length; k++) //transpose
{
Swapchars(ResultArray, k, (key.length * k) % Plaintext.Length);
}
谢谢!
这仅使用密钥长度,而不是密钥内容。因此"aaa"
,"bbb"
密钥将以相同的方式加密。
这是合并关键内容的简单方法(请注意,此代码当然是教育性的。它不是真正的加密货币):
var mulConstant = key.Sum(c => (int)c); //derive constant from key contents
for (int k = 0; k < Plaintext.Length; k++) //transpose
{
Swapchars(ResultArray, k, (mulConstant * k) % Plaintext.Length);
}
我们不乘以key.Length
,而是使用取决于整个键的所有键字符的总和。当您更改任何字符时,整个键都会更改。
仍然存在明显的弱点。密钥"ab"
和"ba"
加密方式相同。