Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
XOR decryption | Information Encryption
Cyber Security Fundamentals
course content

Course Content

Cyber Security Fundamentals

Cyber Security Fundamentals

1. Introduction to Cyber Security
2. Web Cyber Security
3. Information Encryption

XOR decryption

We have already considered how to provide XOR encryption in the previous chapter. But what about decryption?
Let's look at the following code:

123456789101112131415161718192021222324252627282930313233343536373839
# Encoding function def xor_encode(text, key): # Convert text and key to binary strings binary_text = ''.join(format(ord(char), '08b') for char in text) binary_key = ''.join(format(ord(char), '08b') for char in key) # Repeat the key to match the length of the text repeated_key = (binary_key * (len(binary_text) // len(binary_key) + 1))[:len(binary_text)] # XOR each bit of the text with the corresponding bit of the key encoded_text = ''.join(str(int(bit_text) ^ int(bit_key)) for bit_text, bit_key in zip(binary_text, repeated_key)) return encoded_text # Decoding function def xor_decode(encoded_text, key): # Convert encoded text and key to binary strings binary_encoded_text = encoded_text binary_key = ''.join(format(ord(char), '08b') for char in key) # Repeat the key to match the length of the encoded text repeated_key = (binary_key * (len(binary_encoded_text) // len(binary_key) + 1))[:len(binary_encoded_text)] # XOR each bit of the encoded text with the corresponding bit of the key decoded_text = ''.join(str(int(bit_encoded) ^ int(bit_key)) for bit_encoded, bit_key in zip(binary_encoded_text, repeated_key)) # Convert the binary string back to characters decoded_text = ''.join(chr(int(decoded_text[i:i+8], 2)) for i in range(0, len(decoded_text), 8)) return decoded_text # Example usage: encoded_message = xor_encode("Hello, XOR Decoding!", "secretkey") # XOR Decoding decoded_message = xor_decode(encoded_message, "secretkey") print(f"Encoded Message : {encoded_message}") print(f"Decoded Message : {decoded_message}")
copy

The decoding function is almost the same as encoding; the only difference is the existence of the additional line that decodes binary representation into the text format (line 28).

How is the XOR operation represented in Python?

Select the correct answer

Everything was clear?

Section 3. Chapter 6
We're sorry to hear that something went wrong. What happened?
some-alt