MLXE - Master Lenman XOR Encryption
This Encryption is extremely simple. It's not very safe, so it shouldn't be used for
professional purposes. I made it for educational purposes, and for fun.
It's still useful for some little private encryptions, like when you got 1000s of passwords,
and want to remember only one, namely the one you used to encrypt the list containing all of them.
Have fun with this little tool, but use it at your own risk.
How to use it
You can download MLXE here.
The program takes 3 parameters: Name of inputfile, name of outputfile and the passphrase.
There are 2 example .bat files I made to show you how to use the program. All you need to do is:
- Right click one of the bat files
- Click on Edit
- Make your changes, save and execute the bat file
The passphrase has to be exactly 8 characters long!!! Any additional characters will be ignored.
How does it work?
This encryption reads one byte after the other out of the inputfile, and XORs it with one byte
of the passphrase, one after the other. But what exactly is XOR? XOR stands for exclusive or.
The operator for XOR is ^. Something xored is true, if one, and only one value is true. Some rules:
- 1 ^ 0 = 1
- 1 ^ 1 = 0
- 0 ^ 0 = 0
- x ^ x = 0
- x ^ 0 = x
Example: We want to encrypt the letter a. The binary value for a is 01011100. Using the passphrase "password",
the first letter of the passphrase is p, what equals 01110000. Now these 2 values are xored:
01011100 //a
^ 01110000 //p
----------
00101100 //encrypted value
If we had more characters in our input file, it would just move on and encrypt the second letter with
the second letter of the passphrase and so on. When the 8th letter of the passphrase was used, it starts again
with the first. What if we want our original message/letter back? As x ^ x = 0, we can remove the p we
xored with the a by xoring with p again. So we just need to run the same algorithm on the encrypted
file, using the same password we used for the original file.
00101100 //encrypted value
^ 01110000 //p
----------
01011100 //original value a
|