@ user1918906 занял у меня 1,5 часа экспериментов, но, конечно, это могло быть более полезным для других, так что оно того стоило :-)
льку mcrypt_encrypt больше не поддерживается в PHP 7.2, я пытаюсь найти точную альтернативу этой функции.
Прочитав много SO-ответов, я нашел следующий код, который использует PHPSECLIB, но он не выдает точный зашифрованный текст как mcrypt.
function encryptRJ256($key,$iv,$string_to_encrypt)
{
// $rtn = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $string_to_encrypt, MCRYPT_MODE_CBC, $iv);
$rijndael = new Crypt_Rijndael(CRYPT_RIJNDAEL_MODE_CBC);
$rijndael->setKey($key);
$rijndael->setIV($iv);
$rijndael->setKeyLength(256);
$rijndael->disablePadding();
$rijndael->setBlockLength(256);
$rtn = $rijndael->encrypt($string_to_encrypt);
$rtn = base64_encode($rtn);
return($rtn);
}
Мой ключ и IV
$ky = 'lkirwf897+22#bbtrm8814z5qq=498j5';
$iv = '741952hheeyy66#cs!9hjv887mxx7@8y';
Первые 42 символа равны, но остальные разные, как вы можете видеть
Текст для шифрования: 57F0-ECD3-1A3B-341E-BA39-F81B-F020-0DE0
Вывод mcrypt_encrypt:
3uw7mVZthiIPPNosvppZHd1jEau3Ul + 0BQ4AVS2t80skauq3Zv9z5uztvmiBpYqQcKGIDP5YHfdEBhPBfdVbxg ==
вывод phpseclib:
3uw7mVZthiIPPNosvppZHd1jEau3Ul + 0BQ4AVS2t80tKnjjxVhuAwh3E1S5OnH1up5AujvQu1Grgyv16tNIEDw ==
Мне нужно создать такой же зашифрованный текст, потому что этот текст расшифровывается другой программой, которую я не могу изменить.
Поэтому мой вопрос: возможно ли создать тот же зашифрованный текст, что и mcrypt_encrypt, используя phpseclib или каким-либо другим способом?