RNCryptor Шифрование в iOS и дешифрование в переполнении стека

Я пытался использовать 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, он работал отлично. Какие-нибудь мысли?

2

Решение

замещать

$cryptor = new \RNCryptor\Decryptor();

от

$cryptor = new \RNCryptor\RNCryptor\Decryptor;
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]