呆
呆非4
Unregistered / Unconfirmed
GUEST, unregistred user!
有一算法如下:
输入8 个字节(可打印字符如空格,0~9,A~Z),如ABCDEFG。
也可以少于8个字节如EFG,此时ABCD即为16进制的00。
计算:H1H2H3 = A*0x4000+ B*0x1000+ C*0x400 +D*0x100 +E*0x40 +F*0x10+G
然后将H2放入低字节,H1+H2放入高字节。形成了两个字节。
现在我想做逆运算:即知道了两个字节的值。如何求出8个(或少于8)个字节的值。
因为上述算法会出两种不同的8个字节算出的两字节可能是一样的,
因此做逆运算时,我只要能求出一个值即可。
输入8 个字节(可打印字符如空格,0~9,A~Z),如ABCDEFG。
也可以少于8个字节如EFG,此时ABCD即为16进制的00。
计算:H1H2H3 = A*0x4000+ B*0x1000+ C*0x400 +D*0x100 +E*0x40 +F*0x10+G
然后将H2放入低字节,H1+H2放入高字节。形成了两个字节。
现在我想做逆运算:即知道了两个字节的值。如何求出8个(或少于8)个字节的值。
因为上述算法会出两种不同的8个字节算出的两字节可能是一样的,
因此做逆运算时,我只要能求出一个值即可。