解密中的模运算符



我正在为 ascii 字符串创建一个加密器/解密器,其中我获取字符的 ascii 值,向其添加 1,然后按最高 ascii 值对其进行修改,以便我得到一个有效的 ascii 字符。问题是解密。

假设 (a + b( % c = d我知道 b、c 和 d 的值。如何从中获取变量值?

这正是 ROT1 替换密码。减去 1,如果小于最低值(我假设 0,考虑到您的描述方式(,则添加最大值。

使用像"mod"这样的术语虽然准确,但看起来比实际更复杂。这只是戒指上的加法。当你越过最后一个字母时,你会回到第一个字母,反之亦然。一旦你把数学是如何工作的,方程式应该会弹出来。基本上,你只是像往常一样加或减(在这种情况下加到加密,减去解密(,最后,mod"规范化"你回到合法价值的环上。

使用反公式

a = (b - d) mod c

或在实践中

a = (b - d + c) % c.

需要添加术语+ c作为保护措施,因为%运算符不会在负数中实现真模。

假设c是2,d是0,b是4。

现在我们知道a一定是 2...或者实际上有 4 个..或 6...或任何其他偶数。

这个问题你解决不了,有无限的解决方案。

最新更新