繁体   English   中英

AES python 解密和加密

[英]AES python decrypt and encrypt

假设有这个代码。

def decrypt(key, iv, ct):
    cipher = AES.new(key, AES.MODE_CBC, iv)
    pt = cipher.decrypt(ct)

我似乎无法理解 AES.new 到底在做什么。 它说“返回一个 AES 密码”,但它到底生成了什么? 我很困惑为什么他们在加密之前解密某些东西,比如将 cipher.encrypt() 放在 cipher.decrypt(ct) 之前。 cipher.decrypt(ct) 中的“ct”到底是什么?

抱歉问题的含糊不清。 提前致谢。

我看不到您使用的是哪个 AES 库,但让我把它放在一般上下文中。

AES是一种密码,意味着它是一个可以将明文转换为密文的引擎,反之亦然。 您需要为一个块(例如 128 位或 256 位)的加密算法提供密钥和 IV,但通常您的明文大于一个块。 因此,您需要提供一种模式(例如 CBC)来说明如何创建连续块。 有关它到底是什么的详细信息,请参阅分组密码操作模式

在您的代码中,显然是在有人给您密文并且您知道密钥和 IV 的情况下。 然后你想把它转换回纯文本。 因此,您构建了一个密码并使用它来解密您的密文 ( ct )。

如果您有明文并想获取密文,您将使用ct = cipher.encrypt(pt) function。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM