Я должен выполнить шифрование AES 128 в режиме CBC и сопоставить его с тем же шифрованием AES в coldfusion.
Вот мой код на 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? Разве это не должно быть заменой для него?