XOR暗号化を逆にしようとしています。私は暗号化コードを持っています:
// Walk the 16 nibbles in the 64 bit long long, selecting the corresponding key digit
// and XORing it into the result.
unsigned long long result = 0;
for( i=0; i<16; i++ )
{
int n = 4*(i % keyLen);
int k = (key & (0xF << n)) >> n;
result |= value&(0xF << 4*i) ^ (k<<4*i);
}
最初の行は問題ありません。
2番目と3番目はそうではありません。私の3つの質問は次のとおりです。
- ビットシフトを逆にするだけでうまくいくと思いますか?
- しかし、どうすればビット単位で反転できますか?では、#2はどのように逆になりますか?
- それで、答えが#1で「はい」であり、私が#2を行う方法を知っている場合、私はそれを行うことができ、「はい」を復号化できますか?