1

我一直在尝试为基本加密开发一种好的转置方法(不会在现实中使用)

这是否符合要求:

for (int k = 0; k < Plaintext.Length; k++) //transpose
{
     Swapchars(ResultArray, k, (key.length * k) % Plaintext.Length); 
}

谢谢!

4

1 回答 1

1

这仅使用密钥长度,而不是密钥内容。因此"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"加密方式相同。

于 2012-12-09T15:36:09.217 回答