【发布时间】:2018-10-31 06:27:27
【问题描述】:
我发现了以下代码。我知道,它看起来不像 this one 使用看似随机的数字那么奇怪/令人兴奋,但它似乎比 this one 在大数字上使用位移更复杂:
long[] c = {130636800L, -5080148640L, 13802573088L, -14974335980L, 8683908340L,
-3006955245L, 651448014L, -89047770L, 7457160L, -349165L, 6998L};
for (int x = 0; x < 11; x++) {
long s = 0;
for (int i = 0; i < 11; i++)
s += c[i] * Math.pow(x, i);
System.out.print((char)(s / 1814400));
}
输出:
你好世界
它是如何工作的?是某种形式的加密还是有人为构建它而生气?
【问题讨论】:
-
提示:如何反转整个计算?!里面没有什么魔法,只是经过一些计算的数字。
-
“它是如何工作的?” - 现在是铅笔和纸的时间.....
-
@MitchWheat 也许也可以用计算器。
-
与其说是“加密”不如说是“混淆”。
-
没有人疯狂地建造它,但他们可能有很多空闲时间。 :) 他们只是获取消息的每个代码点,对其应用一些操作,最终得到一个值,然后编写一个程序来反转这些操作以恢复原始代码点。有人可能会在答案部分提供完整的详细信息。