我正在运行一个简单的程序,我将一个字符串转换为一个字符数组,然后将字符转换为整数,然后我在其中添加或减去数字,以便加密字符串。我唯一的问题是,在解密我刚刚加密的内容时,我感到困惑。
使用:
num % 128 + 65
字符串“hello world”更改为“uryy | -E |Àyq”
我似乎无法弄清楚如何改变它。
答案 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)
你做不到。你丢失了信息:每个字节的高位。这个函数没有反转。所以它根本不是加密功能。
该功能无法从该输入传递该输出。