FLO-shared-secret/Aes256.py
Kaushal Kumar Agarwal a9138f37e6
Update Aes256.py
2018-06-21 16:38:12 +05:30

43 lines
1.1 KiB
Python

#!/usr/bin/env python3
import os
from Crypto.Cipher import AES
def pad(data):
padding = 16 - len(data) % 16
return data + padding * ' '
def unpad(data):
return data[:length]
def keyGen():
#Generating random key of 32 bytes
key=os.urandom(32)
#print("Key Generated")
#print(key)
return key
def encryptMsg(plaintext,key):
#Initialization vector in AES should be 16 bytes
IV = 16*'\x00'
#Creation of encryptor and decryptor object using above details
cipher=AES.new(key,AES.MODE_CBC,IV)
return cipher.encrypt(pad(plaintext))
def decryptMsg(ciphertext, key):
#Initialization vector in AES should be 16 bytes
IV = 16*'\x00'
#Creation of encryptor and decryptor object using above details
cipher=AES.new(key,AES.MODE_CBC,IV)
return unpad(cipher.decrypt(ciphertext));
msg=input('Enter The Message To Be Encrypted : ')
length=len(msg)
key = keyGen()
print("Key generated : "+str(key))
ciphertext = encryptMsg(msg,key)
print("Encrypted Text : "+str(ciphertext))
plaintext = decryptMsg(ciphertext, key)
print("Decrypted Text : "+str(plaintext))