Я пытался использовать RNCryptor, чтобы зашифровать строку в iOS и заставить приложение отправить зашифрованную строку на сервер. который расшифрует строку в PHP.
Кажется, все работает нормально (без сообщений об ошибках) до тех пор, пока скрипт PHP не вернет пустую строку.
Я думаю, что проблема в коде iOS, потому что, когда я пытался расшифровать строку в примере decrypt.php, все заработало.
iOS:
NSString *key = @"myPassword";
NSString *string = @"Secret String";
NSData *plain = [string dataUsingEncoding:NSUTF8StringEncoding];
NSData *cipherData = [RNEncryptor encryptData:plain withSettings:kRNCryptorAES256Settings password:key error:&error];
NSString *cipherString = [[NSString alloc] initWithData:[cipherData base64EncodedDataWithOptions:0] encoding:NSUTF8StringEncoding];
Затем я отправляю cipherString в следующий PHP-скрипт
PHP:
require 'autoload.php';
$password = "myPassword";
$base64Encrypted = $_POST['data'];
$cryptor = new \RNCryptor\Decryptor();
$plaintext = $cryptor->decrypt($base64Encrypted, $password);
echo $plaintext;
Вся помощь приветствуется. Спасибо.
Изменить: я узнал из этого обсуждения, что, когда я вошел в Base64 из cipherString
непосредственно в PHP без POST работал отлично. Есть предположения?
cipherString
в PHP-скрипт (без использования POST), он работает нормально, что это значит? - person berrste   schedule 10.12.2014