from cryptography.hazmat .primitives .ciphers import Chiper, algorithms, modes
from cryptography.hazmat .backends import default_backend
from binascii import hexlify as hexa
from os import urandom
k= urandom( 16 )
iv= urandom( 16 )
print ( "k=" , hexa( k) )
cipher = Cipher( algorithms.AES ( k) , modes.CBC ( iv) , backend = default_backend( ) )
aes_encrypt = cipher.encryptor ( )
p1= urandom( 16 )
p2= urandom( 16 )
p= p1+p2+p1
c= aes_encrypt.update ( p) +aes_encrypt.finalize ( )
print ( "p=" , hexa( p) )
print ( "c=" , hexa( c) )
aes_decrypt = cipher.decryptor ( )
p3= aes_decrypt.update ( c) +aes_decrypt.finalize ( )
print ( "p3" , hexa( p3) )
ZnJvbSBjcnlwdG9ncmFwaHkuaGF6bWF0LnByaW1pdGl2ZXMuY2lwaGVycyBpbXBvcnQgQ2hpcGVyLCBhbGdvcml0aG1zLCBtb2Rlcwpmcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQuYmFja2VuZHMgaW1wb3J0IGRlZmF1bHRfYmFja2VuZApmcm9tIGJpbmFzY2lpIGltcG9ydCBoZXhsaWZ5IGFzIGhleGEKZnJvbSBvcyBpbXBvcnQgdXJhbmRvbQprPXVyYW5kb20oMTYpCml2PXVyYW5kb20oMTYpCnByaW50KCJrPSIsaGV4YShrKSkKY2lwaGVyID0gQ2lwaGVyKGFsZ29yaXRobXMuQUVTKGspLCBtb2Rlcy5DQkMoaXYpLCBiYWNrZW5kID0gZGVmYXVsdF9iYWNrZW5kKCkpCmFlc19lbmNyeXB0ID0gY2lwaGVyLmVuY3J5cHRvcigpCnAxPXVyYW5kb20oMTYpCnAyPXVyYW5kb20oMTYpCnA9cDErcDIrcDEKYz1hZXNfZW5jcnlwdC51cGRhdGUocCkrYWVzX2VuY3J5cHQuZmluYWxpemUoKQpwcmludCgicD0iLGhleGEocCkpCnByaW50KCJjPSIsaGV4YShjKSkKYWVzX2RlY3J5cHQgPSBjaXBoZXIuZGVjcnlwdG9yKCkKcDM9YWVzX2RlY3J5cHQudXBkYXRlKGMpK2Flc19kZWNyeXB0LmZpbmFsaXplKCkKcHJpbnQoInAzIixoZXhhKHAzKSk=