我有一个128位的加密密钥,我想把它分成三个部分,当异或运算在一起时,它们会复制密钥。
我该怎么做?
随机选择另外两个128位值(random_1和random_2),然后计算出方程,看看它是如何工作的:
key ^ random_1 = xor_1
现在以相同的方式拆分xor_1:
xor_1 ^ random_2 = xor_2
翻转这个等式,我们得到:
xor_1 = xor_2 ^ random_2
现在代入第一个方程式:
key = random_1 ^ xor_2 ^ random_2
因此,您的代码将只执行xor = key ^ random_1 ^ random_2
,并且您将分发除密钥之外的所有内容。
只需对中的salt值进行异或运算,然后将其异或运算出来即可反转。
如果key'=key^salt1^salt2,则key=key'^salt1^ salt2。
实现起来很琐碎,但反向工程也很琐碎。
你想用这个保护什么,你想保护它不受谁的伤害?