Cryptography and Computer Security (Python) AES encryption and decryption, AES CBC and OFB modes, Hash Algorithm, Checking Data Integrity