私はCBCモードでAES 128暗号化を行い、それをcoldfusionの同じAES暗号化と一致させる必要があります。ここでopenssl_encrypt VS mcrypt_encrypt
は、PHPで私のコードです:
function pkcs5_pad($text, $blocksize) {
$pad = $blocksize - (strlen($text) % $blocksize);
return $text . str_repeat(chr($pad), $pad);
}
$key = "vRJ6XSUi7OGebUK+n1vKkA==";
$iv = "AF9iPTpJC+zEa2auUxuloQ==";
$data = $this->pkcs5_pad("Message to encrypt", 16);
echo openssl_encrypt($data, 'aes-128-cbc', $key, 0, base64_decode($iv));
echo "<br>";
echo base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, base64_decode($iv)));
MCRYPT_ENCRYPTは減価償却が、私のColdFusionと同じで互換性のある結果を与えている:qLz13+xk19lZjSbfs92Ze5akuDbWOsNF2rYZN7aaEHc=
をしかしopenssl_encryptは私に切り抜いた値を与える:dnEcUy2tmvLZhZclnEwRpYHEbHajzmkpwbPorfNw5eN4d37MadEiPGLPvNAZmW4Q
どのようにすることができます私はopenssl_encryptをmcrypt_encryptと同じ値にしますか?それはそれの代わりになるはずですか?
[3DES-ECB暗号化のためにMcryptを置き換えるためにopenssl_encryptを使用する](http://stackoverflow.com/q/39467008/608639)、[AES-256-CBCのpgcryptoを使用して解読することはできませんが、AES- CBCはOKです](http://stackoverflow.com/q/43550818/608639)、[MCrypt rijndael-128からOpenSSL aes-128-ecbへの変換](http://stackoverflow.com/q/45218465/608639)、 [McryptからOpenSSLへの私の暗号化ライブラリのアップグレード](http://stackoverflow.com/q/43329513)、[McryptをOpenSSLで置き換える](http://stackoverflow.com/q/9993909/608639)、および[PHP 7.2でMcryptを削除する準備をする](0120-385-331) – jww