DES ENCRYPTION & DECRYPTION - PE
def pad_text(text, block_size=8):
while len(text) % block_size != 0:
text += ' '
return text
def xor_encrypt_decrypt(data, key):
return ''.join(chr(ord(c) ^ ord(key[i % len(key)])) for i, c in enumerate(data))
#User input
key = input("Enter 8-byte key: ")
if len(key) != 8:
print("Key must be exactly 8 characters!")
else:
plaintext = input("Enter plaintext: ")
padded_plaintext = pad_text(plaintext)
#Encrypt
ciphertext = xor_encrypt_decrypt(padded_plaintext, key)
encrypted_hex = ciphertext.encode().hex()
print("Encrypted (hex):", encrypted_hex)
#Decrypt
decrypted = xor_encrypt_decrypt(ciphertext, key).rstrip()
print("Decrypted:", decrypted)