铁栅栏(Zigzag)密码数学表达式

时间:2017-10-25 21:44:23

标签: algorithm encryption cryptography

我正在开发Rail Fence Cipher加密实现。我目前的(有效)解决方案是:

public static string Encrypt(int height, string plainText)
{
    List<string> railFence = new List<string>();
    for (int i = 0; i < height; i++) railFence.Add("");

    int pos = 0, inc = 1;
    foreach (char c in plainText)
    {
        if (pos + inc == height)
            inc = -1;
        else if (pos + inc == -1)
            inc = 1;

        railFence[pos] += c;
        pos += inc;
    }
    string encryptedtext = "";
    foreach (string s in railFence)
        encryptedtext += s;

    return encryptedtext;
}

但我的问题是我想创建一个表达式,它将以纯文本计算加密文本中给定位置的字符位置(以及围栏高度和纯文本长度):

positionPlainText = expr(positionInEncryptedText, N, plainText.Length)

为了使事情更清楚一点,这个表达式应该回答这个问题:

“嘿表达!我希望将字符放在加密文本中的X位置,将Y的位置放在纯文本中我应该把角色放在那里吗?”

我花了几个小时用笔和纸,我仍然无法创造这样的普遍表达。

0 个答案:

没有答案