如何反转这个简单模数128加密?

时间:2013-04-01 04:39:44

标签: java math encryption

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

使用:

num % 128 + 65

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

我似乎无法弄清楚如何改变它。

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

f(x) = x % 128 + 65

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

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

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

答案 2 :(得分:1)

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

该功能无法从该输入传递该输出。