Skip to content

Demystifying Code: XOR Magic

Seeing Code with New Eyes

In this installment of the Demystifying Code series, we’re diving into XOR, one of the most oddly powerful tools in computing. XOR is everywhere: in cryptography, in RAID arrays, in error detection, and even in data hiding.

And yet, it’s based on one of the simplest logic gates.


What is XOR?

XOR (exclusive or) compares two bits:

  • If the bits are different, it returns 1
  • If they’re the same, it returns 0

Here’s a truth table:

A | B | A ^ B
--|---|------
0 | 0 |   0
0 | 1 |   1
1 | 0 |   1
1 | 1 |   0

In other words, XOR highlights the differences. This deceptively simple behavior gives it powerful capabilities.


🔐 XOR for Obfuscation

Let’s start with a quick example. Suppose you have a message and you XOR each byte with a fixed key:

char msg[] = "secret";
for (int i = 0; msg[i]; i++) {
    msg[i] ^= 0xAA;
}

The result is garbage — unreadable. But XOR it again with the same key, and the original message comes back.

This is reversible obfuscation, and it works because:

XOR(XOR(x, key), key) == x

XOR is its own inverse.


🧠 XOR for Recovery: Reconstructing Missing Data

XOR isn’t just for hiding data. It can rebuild it.

Let’s say you XOR three numbers:

int a = 123;
int b = 456;
int c = 789;
int xor_sum = a ^ b ^ c; // Store this value

Now suppose you lose b. You can recover it like this:

int recovered_b = a ^ c ^ xor_sum;

Try it:

123 ^ 789 ^ (123 ^ 456 ^ 789) = 456

This trick is used in RAID 5. If one disk is lost, XOR the others and the parity to recover the missing data.


📱 A Real-World Demo You Can Try

Want to see it work? Try this with three phone numbers:

Your number:     1012348765
Friend's number: 5551234567
Parent's number: 7779876543

XOR all three:
Result = 3103872997

You can even do this with a scientific calculator.

Now pretend you forgot your number. XOR the other two and the result:

5551234567 XOR 7779876543 XOR 3103872997 = 1012348765

It really works. The math checks out.


Why This Matters

  • XOR can encrypt and decrypt data with the same operation
  • XOR can recover lost data when stored with parity
  • XOR is behind many tools you’ll use every day, whether you realize it or not

This article shows how logic turns into power.

Published indemystifying