Шифрование / Расшифровка строки между Java и PHP

Я использую шифрование AES для шифрования и расшифровки строки между php на стороне сервера и приложения Android (как клиент).

Зашифрованная строка в PHP:

HaxRKnMxT24kCJWUXaVvqDHahzurJQK+sYA4lIHql/U= 

и в Java это:

 HaxRKnMxT24kCJWUXaVvqD/KMEkJTPTXEcCsHIYGX9TGtCNOHQcJyUURPk8qlgf3 

Я использую phpseclib в PHP-скрипте для шифрования.

Что мне здесь не хватает?

Соответствующий Java-код здесь

 SecretKeySpec skeySpec = new SecretKeySpec(pad16(pass), "AES"); Cipher c = Cipher.getInstance("AES"); c.init(Cipher.ENCRYPT_MODE, skeySpec); byte[] out = c.doFinal( input ) 

И код PHP здесь:

 $aes = new Crypt_AES(); $aes->setKey('password'); $encrypted_encoded_text = base64_encode($aes->encrypt($plaintext)); - $aes = new Crypt_AES(); $aes->setKey('password'); $encrypted_encoded_text = base64_encode($aes->encrypt($plaintext)); 

Solutions Collecting From Web of "Шифрование / Расшифровка строки между Java и PHP"

Для шифрования / дешифрования для работы на разных языках существует несколько вещей, которые должны быть одинаковыми.

  1. Алгоритм шифрования (duh!)
  2. Ключ (снова, снова!)
  3. Размер ключа
  4. Режим работы (ECB, CBC, CTR)
  5. Вектор инициализации (если CBC, нет необходимости в ECB)
  6. Схема прокладки

    и, вероятно, еще несколько факторов ….

Вы уверены, что все те же языки на обоих языках? Если да, то ваше шифрование / дешифрование должно работать безупречно, если в реализации нет ошибки (что очень редко, но возможно).