AES128(OFB模式)在python中,键或文本或IV siz有问题

2024-10-01 11:26:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串,我知道它是用AES-128加密的。我可以使用以下PHP代码解密:

$key  = "some-key";
$data = "VAZ8AePlKF+TD+tGFw==";

$crypt = base64_decode($data);

$text = mcrypt_decrypt (MCRYPT_RIJNDAEL_128, $key, $crypt, MCRYPT_MODE_OFB);

echo $text;

如预期,输出是Hello, world!。在

但是我想用python实现这段代码,但是我在键大小或文本大小,或者IV。。。在

我的代码是:

^{pr2}$

怎么了?有人能帮我修一下吗?在


Tags: key字符串代码textdatasomeaestd
1条回答
网友
1楼 · 发布于 2024-10-01 11:26:59

根据文档,key必须是16、24或32字节长。长度决定使用哪种AES模式。因此,您需要决定您想要哪种模式,然后将key填充到所需的大小:

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.

如果要将pad归零,可以按如下方式填充到32个字节:

padded_key = key + ("\x00" *  (32 - len(key)))

另外,密码文本必须是16字节的倍数。如果它已经被加密,那么它应该已经是16字节的倍数。如果不是,那么可能是损坏的数据。另一方面,加密时,通常需要填充纯文本,可以使用以下方法:

^{pr2}$

相关问题 更多 >