找到用于XOR的值

时间:2014-06-18 00:37:45

标签: encryption xor

我有初始地址和输出..我需要找出用于XOR的内容

129.94.5.93:46 XOR ????? == 10.165.7.201:14512

3 个答案:

答案 0 :(得分:1)

XOR有一个有趣的属性,如果你将它应用于它的一个操作数和结果,你会得到另一个操作数。换句话说,如果

r = a ^ b

然后

b = r ^ a

其中ab是操作数,结果是r

因此,与原始版本进行异或的数据是

139.251.2.148:14494

以下是C#中的一个简短程序,用于根据您的数据生成此结果:

var a = new[] {129,94,5,93,46};
var b = new[] {10,165,7,201,14512};
var c = new int[a.Length];
for (int i = 0 ; i != a.Length ; i++) {
    c[i] = a[i] ^ b[i];
    Console.WriteLine("a={0} b={1} c={2} back={3}", a[i], b[i], c[i], c[i] ^ a[i]);
}

Here is a link to ideone showing this program in action.

答案 1 :(得分:1)

XOR是一个可逆的"这样的功能:

XOR B = C. A XOR C = B

因此,如果您只是对您拥有的2个值进行异或,则可以获得缺失的数字

所以

129.94.5.93:46 XOR X == 10.165.7.201:14512

x == 129.94.5.93:46 OXR 10.165.7.201:14512

答案 2 :(得分:1)

解决这个问题的最简单方法是查看每个数字的二进制表示(让我们在每一侧取第一个数字):

     129 = 10000001
XOR  139 = 10001011
======================
     010 = 00001010

从中我们可以看出129 XOR 139 == 10相当于129 XOR 10 == 139