Change XOR to XNOR

bit-manipulation, bitwise-operators, bitwise-xor, python, xor

Solution

Replace all instances of `a ^ b` with `~(a ^ b)` to change the XOR operations to XNOR operations. Be sure to insert the not operator at the correct location to ensure correct order of operations occurs!

Using Your specific code examples:

`key_possible_bytes[offset] += chr(``~(ord(char) ^ most_char)``)`

`ret[index] = (chr(``~(ord(char) ^ ord(key[index % len(key)]))``))`

Problem

I am working with a XNOR encrypted file whose key is not known. I want to modify the xortool which is available here: https://github.com/hellman/xortool to work for XNOR encryption. Apparently, there are only two lines which uses the '^' operator. So I tried changing them to xnor using ~ operator. But I could not get the required output. How can I accomplish this? Edit: The code uses '^' operator only in line 248 in xortool.py ``` key_possible_bytes[offset] += chr(ord(char) ^ most_char) ``` and in line 75 in routine.py ``` ret[index] = (chr(ord(char) ^ ord(key[index % len(key)]))) ``` So I added a ~ operator before both of them.

Original source