我正在运行一个简单的程序,将字符串转换为字符数组,然后将字符转换为整数,然后在其中添加或减去数字,以加密字符串。我唯一的问题是,在解密我刚刚加密的内容时,我陷入了困境。
使用这个:
num % 128 + 65
字符串“hello world”更改为“uryy|-E|Àyq”
我似乎无法弄清楚如何将其更改回来。
我正在运行一个简单的程序,将字符串转换为字符数组,然后将字符转换为整数,然后在其中添加或减去数字,以加密字符串。我唯一的问题是,在解密我刚刚加密的内容时,我陷入了困境。
使用这个:
num % 128 + 65
字符串“hello world”更改为“uryy|-E|Àyq”
我似乎无法弄清楚如何将其更改回来。
为了首先具有有效的加密函数,该函数需要是单射的。然后它可以被逆转,只有这样。
模不是单射的。1 和 129 % 128 都是 1。因此,您的加密方法没有反向功能。
f(x) = x % 128 + 65
这个函数是不可逆的,它不是一个线性加密函数,它是一个哈希函数
g(x):
g(X0) = X0 ^ KEY
g(Xi) = Xi ^ Xi-1
g(x) 是使用 KEY 的加密函数,为了解密我们再次使用 g(x) 本身,因为 XOR 是对称运算
你不能。您丢失了信息:每个字节的高位。这个函数没有逆函数。所以它根本不是加密功能。
而且该功能不会从该输入中提供该输出。