Last active
November 30, 2023 11:10
-
-
Save meysampg/96bf138e590ddd773001768867aebf16 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from cryptography.hazmat.backends import default_backend | |
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes | |
from cryptography.hazmat.primitives import padding | |
import math | |
def encrypt_data(data, key, iv): | |
cipher = Cipher(algorithms.AES(key), modes.CBC(iv), backend=default_backend()) | |
encryptor = cipher.encryptor() | |
padder = padding.PKCS7(algorithms.AES.block_size).padder() | |
padded_data = padder.update(data) + padder.finalize() | |
ciphertext = encryptor.update(padded_data) + encryptor.finalize() | |
return len(padded_data.hex()), len(ciphertext.hex()) | |
def generate_table(): | |
key = b'1234' * 8 | |
iv = b'1234' * 4 | |
print("| Input Size (Bytes) | Padded Size (Bytes) | Encrypted Size (Bytes) |") | |
print("|--------------------|----------------------|-------------------------|") | |
for i in range(1, 11): # Powers of 2 from 2^1 to 2^10 | |
input_size = int(math.pow(2, i)) | |
data = b'a' * input_size # Example data, you can change this | |
padded_size, encrypted_size = encrypt_data(data, key, iv) | |
print(f"| {input_size:<18} | {padded_size:<20} | {encrypted_size:<25} |") | |
if __name__ == "__main__": | |
generate_table() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment