2

テキストをphpで暗号化し、pythonで復号化する必要があります。

これは私のphpコードです(標準サンプル):

$key = "df811af36fcafd6dbd092955aa6fb15b";
$string = 'Hello World ++++';
$iv='1234567812345678';
$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $string, MCRYPT_MODE_CBC, $iv));
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($encrypted), MCRYPT_MODE_CBC, $iv), "\0");
var_dump($encrypted);
var_dump($decrypted);

結果は次のとおりです。

string(44) "scPCUNHEMHZK5BoXbOixX6DUpo9Z5+uvmW4lW0bnpSY="
string(16) "Hello World ++++"

次に、Pythonで試します:

import base64
from Crypto.Cipher import AES

ciphertext=base64.decodestring("scPCUNHEMHZK5BoXbOixX6DUpo9Z5+uvmW4lW0bnpSY=")
key="df811af36fcafd6dbd092955aa6fb15b"
iv='1234567812345678'
cipher=AES.new(key, AES.MODE_CBC, iv)
cipher.decrypt(ciphertext)

しかし、結果は次のとおりです。

'\xe6I\x7fb\xe3{\xcf\x02\xcf^\x06\x06B`\xfd\xc71\x8d\x1f\xb5f.>K\xfe/\xdf\xdf\xb0\x96\x9b^'

これらの python および php モジュールを見つけました。純粋な python と php での別の実装。

http://wiki.birth-online.de/snippets/python/aes-rijndael
http://wiki.birth-online.de/snippets/php/aes-rijndael

これら 2 つのモジュールは問題なく連携しますが、php と python で標準/有名なモジュールを使用する必要があります。(php では mcrypt、python では Crypto)


PHP コードで MCRYPT_RIJNDAEL_256 を MCRYPT_RIJNDAEL_128 に変更したところ、すべて問題なく表示されました。

しかし、どうすれば 256 ビット キーを取得できますか?

4

0 に答える 0