0

通过将字母转换为数字,应用加密函数 f (p) = (3p + 7) mod 26,然后将数字转换回字母来加密消息 NEED HELP。答:加密形式:UTTQ CTOA。

有人可以向我解释他们是如何得到这个答案的

4

1 回答 1

1

首先,您必须为每个字母分配一个数字:

A = 0; B = 1; C = 2 ....

然后将该函数应用于您获得的数字并将其转换回字母:

N 是 13,所以 13 * 3 = 39,+ 7 = 46 然后 mod 26 = 20

转换回来,20 = U

如果您在句子的所有字母上都这样做,您将获得加密形式

这里是执行此操作的 C# 代码:

    private static string encrypt(string s)
    {
        char[] tmp = new char[s.Length];
        int i = 0;

        foreach (char c in s)
        {
            tmp[i] = (char)((((c - 'A') * 3 + 7) % 26) + 'A');
            i++;
        }

        return new string(tmp);
    }

在这里你的解密功能(好吧,这个很乱但有效):

    private static string decrypt(string s)
    {
        string res = s;
        for (int i = 0; i < 5; i++)
            res = encrypt(res);

        return res;
    }
于 2013-03-10T18:15:44.033 回答