У меня проблема при обмене данными в зашифрованном виде между iOS и PHP. У меня есть приложение, которое шифрует строку и отправляет ее на сервер PHP, который расшифровывает ее. Эта часть работает просто отлично. Теперь сервер PHP должен отправить зашифрованный ответ обратно в приложение, что, кажется, вызывает немного
больше седых волос.
Проблема в том, что когда я зашифровываю строку в PHP, она выглядит иначе, чем та же строка, зашифрованная в iOS и даже .NET - очевидно, все места используют один и тот же алгоритм, ключ и IV.
Я использую Rijndael 128 в режиме CBC с IV, состоящим из пустых байтов (пока).
PHP-шифрование выглядит так:
$encrypted = mcrypt_encrypt( MCRYPT_RIJNDAEL_128, $this->secret_key, $str, MCRYPT_MODE_CBC, $this->iv );
$encrypted = base64_encode( $encrypted );
Шифрование iOS прикреплено в этом файле:
StringEncryption.m: http://pastie.org/1365766
Я надеюсь, что кто-то может помочь мне определить, где я что-то упускаю или у меня есть какие-то другие параметры значений. Я смотрел на это в течение нескольких часов, и больше ничего не могу попробовать.