通过将字母转换为数字,应用加密函数 f (p) = (3p + 7) mod 26,然后将数字转换回字母来加密消息 NEED HELP。答:加密形式:UTTQ CTOA。
有人可以向我解释他们是如何得到这个答案的
通过将字母转换为数字,应用加密函数 f (p) = (3p + 7) mod 26,然后将数字转换回字母来加密消息 NEED HELP。答:加密形式:UTTQ CTOA。
有人可以向我解释他们是如何得到这个答案的
首先,您必须为每个字母分配一个数字:
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;
}