XOR Encryption of plaintext with a key in Python
A simple yet effective encryption method, XOR, uses bit-level operations based on the printed letter's ASCII values. The XOR encryption technique uses a special key to create the encrypted text, which is then XOR-ed with the plaintext. After determining the plaintext and key lengths, the plaintext is divided into segments that are the same length as the key. The results of the XOR operation between each segment and the key are then saved in an array. After all operations are finished, the array holds the final encrypted text.
Although XOR encryption is straightforward and helpful in explaining the fundamentals of encryption, there are more secure methods for protecting sensitive data.
Code example
Let's see an example of performing XOR encryption on a plaintext.
# Function to perform XOR encryptiondef xor_encryption(text, key):# Initialize an empty string for encrypted textencrypted_text = ""# Iterate over each character in the textfor i in range(len(text)):encrypted_text += chr(ord(text[i]) ^ ord(key[i % len(key)]))# Return the encrypted textreturn encrypted_text# The plaintext that we want to encryptplain_text = "Educative Accelerates Developer Productivity"# The secret key used for encryptionkey = "Edu_key"# Encrypt the plain_text using the keyencrypted_text = xor_encryption(plain_text, key)# Print the encrypted textprint(f'Encrypted Text: {encrypted_text}')
Explanation
Let’s see the above code in detail.
Line 2: We define a function named
xor_encryptionwhich takes two arguments:textandkey.Line 4: We declared an empty string
encrypted_textwhich will hold the final encrypted result.Lines 7–8: The loop iterates over the
text, XORs each character with the corresponding character in thekey, and appends the result toencrypted_text.Line 19: The
xor_encryptionfunction is called withplain_textandkey.
Free Resources