Я использую шифрование 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));
Для шифрования / дешифрования для работы на разных языках существует несколько вещей, которые должны быть одинаковыми.
Схема прокладки
и, вероятно, еще несколько факторов ….
Вы уверены, что все те же языки на обоих языках? Если да, то ваше шифрование / дешифрование должно работать безупречно, если в реализации нет ошибки (что очень редко, но возможно).