所以我有这个十六进制:B0 32 B6 B4 37
我知道这个十六进制是用一些密钥/算法进行混淆的。
我也知道这个十六进制等于:61 64 6d 69 6e(admin)
如何为此计算XOR键?
答案 0 :(得分:2)
如果你写出二进制表示,你可以看到模式:
encoded decoded
10110000 -> 01100001
00110010 -> 01100100
请注意,位模式前后的位数相同。要进行解码,只需向左旋转一位即可。因此,值向左移动一个位置,最重要的位移到最不重要的位置。要编码,只需反过来。
int value, encoded_value;
encoded_value = 0xB0;
value = ((encoded_value << 1) | (encoded_value >> 7)) & 255;
// value will be 0x61;
encoded_value = ((value >> 1) | (value << 7)) & 255;