Я пытаюсь зашифровать строку в Swift и расшифровать ее на PHP. Я получил хорошую помощь от SO, и, надеюсь, кто-то может помочь еще раз. Вот код, который я пытаюсь использовать в PHP для дешифрования.PHP AES256 PKCS7 расшифровка от iOS Swift
$key = "test";
$pass = "bLOKONASw8tE2cki5QhkcA==";
$iv = "123456789";
$base64encoded_ciphertext = $pass;
echo "pass: ".$pass;
$res_non = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, base64_decode($base64encoded_ciphertext), MCRYPT_MODE_CBC, $iv);
$decrypted = $res_non;
echo " 1: ".$decrypted;
$dec_s2 = strlen($decrypted);
echo " 2: ".$dec_s2;
$padding = ord($decrypted[$dec_s2-1]);
echo " padding: ".$padding;
$decrypted = substr($decrypted, 0, -$padding);
echo " Decrypted: ".$decrypted;
строка шифруется в Swift, и я base64 закодировать его прежде чем отправить его на сервер.
У меня нет ошибки, но похоже, что полученное «расшифрованное» значение пуст.
У меня есть функция дешифрования теста в Swift, которая возвращает правильный результат.
Key:<74657374 73747269 6e67>
Iv:<31323334 35363738 39303132 33343536>
Message: <74657374 6d657373 616765>
ivLength = 16, ivData = <31323334 35363738 39303132 33343536>
encryptedData: <6cb38a38 d012c3cb 44d9c922 e5086470>
base64cryptString = bLOKONASw8tE2cki5QhkcA==
Если кто-то может помочь мне понять, где я неправильно, это было бы ар
проверить, что вы дополняете. У меня возникла проблема с C#. Некоторое время назад получалось, что байты заполнения различны. Php использует true nulls. Другие языки используют ноль или вкладки и т. Д. Мне пришлось сделать некоторую работу вокруг кода, который был оскорбительным длинный. Кроме того, если они заполняли до 16 байтов в php, а C# работает до 64 байтов, я думаю, что я должен был это допускать. – Dave
Не могли бы вы объяснить, как вы решили проблему? – Alex
Его было, как 5 лет с тех пор, как я это сделал, и у меня нет кода для передачи. Я помню что-то вроде того, что нужно установить размер пакета pkcs на что-то глупое, как 9, чтобы дать равноценность 7 в C#. Я посмотрю, код клиента, архивированный где-то – Dave