用PHP加密,用Python解密

use*_*120 4 php python encryption cross-language

PHP代码:

$key = "12345678abcdefgh12345678abcdefgh";
$iv = "12345678abcdefgh";
$plaindata = "This is a test string.";

$enc = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $plaindata, MCRYPT_MODE_CBC, $iv));

echo($enc);
Run Code Online (Sandbox Code Playgroud)

结果:

QBN0Yue3D9hBrBuD01n5KWG+lv2doMf97cKm/AeusAI=
Run Code Online (Sandbox Code Playgroud)

如何在Python中解密?

omu*_*gru 5

尝试这样的事情(虽然我安装了PyCrypto)

from Crypto.Cipher import AES
import base64

AES.key_size=128
iv="your iv"
key="your key"
crypt_object=AES.new(key=key,mode=AES.MODE_CBC,IV=iv)

decoded=base64.b64decode(plain) # your ecrypted and encoded text goes here
decrypted=crypt_object.decrypt(decoded)
Run Code Online (Sandbox Code Playgroud)

这将带来解码的文本,但它将填充字节,因为它是16的大小倍数.

你可能应该决定一个合适的填充方案,然后相应地删除它