简体   繁体   English

用PHP加密,用Python解密

[英]Encrypt in PHP, Decrypt in Python

PHP code: 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);

Result: 结果:

QBN0Yue3D9hBrBuD01n5KWG+lv2doMf97cKm/AeusAI=

How can this be decrypted in Python? 如何用Python解密?

Try something like this (altho i do have PyCrypto installed) 尝试这样的事情(虽然我确实安装了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)

This will bring the decoded text but it will be padded with bytes for it to be a size multiple of 16. 这将带来已解码的文本,但是将用字节填充它的大小为16的倍数。

You should probably decide on a proper padding scheme and remove it afterwards accordingly 您可能应该确定适当的填充方案,然后相应地将其删除

阅读该手册 ,其详细记录。

data = base64.b64decode('QBN0Yue3D9hBrBuD01n5KWG+lv2doMf97cKm/AeusAI=')

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

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