diff --git a/recv/recv.py b/recv/recv.py index a215b8f..ac101ff 100644 --- a/recv/recv.py +++ b/recv/recv.py @@ -35,7 +35,7 @@ def handleLetter(letter:Letter): SM4.decrypt_ecb(base64.b64decode(letter.fileBase64),key) elif type == config.EncryptType.SM4_CBC: SM4.decrypt_cbc_with_iv(base64.b64decode(letter.fileBase64),key) - elif type == config.EncryptType.AES_GCM: + elif type == config.EncryptType.AES_ECB: raise NotImplementedError("未实现") elif type == config.EncryptType.AES_CBC: raise NotImplementedError("未实现") diff --git a/sender/sender.py b/sender/sender.py index 2831a8e..cddad9e 100644 --- a/sender/sender.py +++ b/sender/sender.py @@ -56,7 +56,7 @@ def SymEncryption(encryData, key: bytes = None): aesUtils = AESUtils(key) # tureKey 为 真实返回的Key,如果没有设置初始值,那么key是随机生成 encryptedData, tureKey = aesUtils.encrypt(encryData, mode=mode) # 这里encryData要改为文件内容 - return encryptedData + return encryptedData,tureKey if way == "sm2": pass @@ -69,6 +69,9 @@ def getKey(): if __name__ == "__main__": # 示例数据和密钥 data = "Hello, AES!" - key = "1234567890abcdef" + # key = "1234567890abcdef" + print(data) - SymEncryption(data) + data,key = SymEncryption(data) + + print(data,key) \ No newline at end of file diff --git a/tool/symmetric/AES.py b/tool/symmetric/AES.py index 034e7ff..a13d576 100644 --- a/tool/symmetric/AES.py +++ b/tool/symmetric/AES.py @@ -13,23 +13,23 @@ class AESUtils: else: self.key = key - def encrypt(self, data: str, mode: str = 'ECB') -> str: + def encrypt(self, data: str, mode: str = 'ECB') -> (str,str): """加密数据""" cipher = self._get_cipher(mode) data = pad(data.encode(), AES.block_size) # 填充数据 ciphertext = cipher.encrypt(data) - return base64.b64encode(ciphertext).decode() + return base64.b64encode(ciphertext).decode(),self.key def _get_cipher(self, mode: str) -> AES: """根据模式返回相应的 AES cipher""" iv = None if mode == 'CBC': iv = get_random_bytes(AES.block_size) - return AES.new(self.key, AES.MODE_CBC, iv), self.key + return AES.new(self.key, AES.MODE_CBC, iv) elif mode == 'CFB': - return AES.new(self.key, AES.MODE_CFB), self.key + return AES.new(self.key, AES.MODE_CFB) elif mode == 'OFB': - return AES.new(self.key, AES.MODE_OFB), self.key + return AES.new(self.key, AES.MODE_OFB) else: # 默认是 ECB - return AES.new(self.key, AES.MODE_ECB), self.key + return AES.new(self.key, AES.MODE_ECB)