PRACTICAL 4: DES ECB AND DES CBC

A. DES ECB
CODE:
from Crypto.Cipher import DES
from Crypto.Random import get_random_bytes
import base64

key = get_random_bytes(8)
des = DES.new(key, DES.MODE_ECB)

message = "Hello DES!"
text = message
while len(text) % 8 != 0:
    text += " "

encrypted = base64.b64encode(des.encrypt(text.encode())).decode()
print("Encrypted:", encrypted)

decrypted = des.decrypt(base64.b64decode(encrypted)).decode().rstrip()
print("Decrypted:", decrypted)


B. DES CBC
CODE:
from Crypto.Cipher import DES
from Crypto.Random import get_random_bytes
import base64

key, iv = get_random_bytes(8), get_random_bytes(8)
msg = "Hello DES!"
msg += ' ' * (-len(msg) % 8)

enc = DES.new(key, DES.MODE_CBC, iv).encrypt(msg.encode())
print("Encrypted:", base64.b64encode(enc).decode())

dec = DES.new(key, DES.MODE_CBC, iv).decrypt(enc).decode().rstrip()
print("Decrypted:", dec)
