@ 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 или каким-либо другим способом?

Ответы на вопрос(1)

Ваш ответ на вопрос