-7

我正在运行一个简单的程序,将字符串转换为字符数组,然后将字符转换为整数,然后在其中添加或减去数字,以加密字符串。我唯一的问题是,在解密我刚刚加密的内容时,我陷入了困境。

使用这个:

num % 128 + 65

字符串“hello world”更改为“uryy|-E|Àyq”

我似乎无法弄清楚如何将其更改回来。

4

3 回答 3

3

为了首先具有有效的加密函数,该函数需要是单射的。然后它可以被逆转,只有这样。

模不是单射的。1 和 129 % 128 都是 1。因此,您的加密方法没有反向功能。

于 2013-04-01T04:49:38.317 回答
2
f(x) = x % 128 + 65

这个函数是不可逆的,它不是一个线性加密函数,它是一个哈希函数

g(x):
   g(X0) = X0 ^ KEY
   g(Xi) = Xi ^ Xi-1

g(x) 是使用 KEY 的加密函数,为了解密我们再次使用 g(x) 本身,因为 XOR 是对称运算

于 2013-04-01T04:53:55.440 回答
1

你不能。您丢失了信息:每个字节的高位。这个函数没有逆函数。所以它根本不是加密功能。

而且该功能不会从该输入中提供该输出。

于 2013-04-01T04:44:48.370 回答