Crypto.Cipher.AES.new 中的默认模式

Default mode in Crypto.Cipher.AES.new

方法Crypto.Cipher.AES.new(key, mode, *args, **kwargs)中,只提供一个参数时的默认模式是什么:

cipher = AES.new(key)
Crypted = cipher.encrypt(plaintext)

文档只是说:

mode (One of the supported MODE_* constants) – The chaining mode to use for encryption or decryption. If in doubt, use MODE_EAX.

欧洲央行。这在 docs 中有详细说明。 (我不确定你在看哪些。文档可能比你的版本有所改进。)

new(key, *args, **kwargs)

Create a new AES cipher

Parameters:

key (byte string) - The secret key to use in the symmetric cipher. It must be 16 (AES-128), 24 (AES-192), or 32 (AES-256) bytes long.

mode (a MODE_* constant) - The chaining mode to use for encryption or decryption. Default is MODE_ECB.

...

通常,我不会依赖这里的默认设置。它对加密有重大影响,对于阅读代码的任何人来说都非常重要。 (此外,ECB 几乎总是错误的使用模式。它仅在非常受控的情况下才是安全的。)