我正在为 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...或任何其他偶数。
这个问题你解决不了,有无限的解决方案。