From 6660c13adf50e2ba7877e3ad0e7ed5315851ec46 Mon Sep 17 00:00:00 2001 From: pjfk9mlfx <1296009597@qq.com> Date: Fri, 27 Dec 2024 08:15:51 +0800 Subject: [PATCH] ADD file via upload --- AES.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 AES.py diff --git a/AES.py b/AES.py new file mode 100644 index 0000000..9c85c97 --- /dev/null +++ b/AES.py @@ -0,0 +1,50 @@ +from Crypto.Cipher import AES +from Crypto.Util.Padding import pad, unpad +from Crypto.Random import get_random_bytes + +def create_aes_ecb_cipher(key): + """创建AES-ECB模式的加密/解密器""" + return AES.new(key, AES.MODE_ECB) + +def create_key(filename): + """生成随机密钥16字节""" + aeskey = get_random_bytes(16) + with open(f'./.tempfile/{filename}_key', 'wb') as f: + f.write(aeskey) + return aeskey +def AESencrypt(message, key): + """使用AES-ECB模式加密消息""" + cipher = create_aes_ecb_cipher(key) + + if isinstance(message, str): + message = message.encode('utf-8') + padded_message = pad(message, AES.block_size) + + # 加密消息 + encrypted_message = cipher.encrypt(padded_message) + + return encrypted_message + + +def AESdecrypt(encrypted_message_file, key): + """使用AES-ECB模式解密消息""" + cipher = create_aes_ecb_cipher(key) + with open(encrypted_message_file,'rb') as encrypted_me: + encrypted_message = encrypted_me.read() + + # 解密消息并移除填充 + decrypted_padded_message = cipher.decrypt(encrypted_message) + decrypted_message = unpad(decrypted_padded_message, AES.block_size) + + # 将字节串转换回字符串(如果原始消息是字符串) + # try: + # decrypted_message = decrypted_message.decode('utf-8') + # print(decrypted_message) + # except UnicodeDecodeError: + # pass # 如果原始消息不是字符串,则保持为字节串 + with open(encrypted_message_file, 'wb') as f: + f.write(decrypted_message) + + return decrypted_message + +