Несоответствие шифрования между Java и PHP

Я работаю над системой шифрования, которая передает данные стороннему приложению. Шифрование выполняется на Java, а дешифрование - на PHP. Несмотря на несколько попыток, я не могу получить зашифрованную строку для открытия приложением PHP.

В целях тестирования я создал скрипт PHP, который также шифрует данные, чтобы я мог сравнить зашифрованные строки Java и PHP. Результаты совпадают до 21-го символа, а затем они отличаются. Вот что у меня есть:

<code>// Java - Encrypt
private String EncryptAES(String text,String key) throws Exception
    {
      SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes(), "AES");

      // Instantiate the cipher
      Cipher cipher = Cipher.getInstance("AES");

      cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
      byte[] encrypted = cipher.doFinal(text.getBytes());

      String encrypttext = new BASE64Encoder().encode(encrypted);

      return encrypttext;
    }

RESULT: TeUZAFxoFoQy/roPm5tXyPzJP/TLAwR1aIGn2xHbZpsbY1qrKwXfO+F/DAqmeTwB0b8e6dsSM+Yy0zrQt22E2Q== 
</code>

а также

<code>// PHP - Encrypt
<?php

$encrypt =  $crypt = openssl_encrypt($toCrypt,"AES256","key-32-char-long");
echo $encrypt; 

?>

RESULT: TeUZAFxoFoQy/roPm5tXyC05wta1Z5YOXcq4OtgFoSbfVi/bHAuD6B5tDthT8EcGXQir08UAx0QvcqRJ2fJmbQ==
</code>

Очевидно, что-то делается правильно, потому что часть строк совпадает, но, очевидно, не все правильно, потому что остальные не совпадают. Кроме того, если я пытаюсь расшифровать строку Java в PHP, ничего не происходит:

<code>// PHP - Decrypt
<?php
$toDecrypt = "TeUZAFxoFoQy/roPm5tXyPzJP/TLAwR1aIGn2xHbZpsbY1qrKwXfO+F/DAqmeTwB0b8e6dsSM+Yy0zrQt22E2Q==";
$decrypt = openssl_decrypt($toDecrypt,"AES256","<key-32-char-long>");
echo $decrypt;

?>

RESULT: <nothing>
</code>

У кого-нибудь есть идеи, что может происходить?

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

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