На клиенте у меня есть строка, которую я шифрую с помощью открытого ключа. После того, как строка зашифрована, я кодирую ее как base64, экранирую строку, затем включаю ее в качестве параметра в тело JSON, а затем отправляю на сервер через метод POST конечной точки API. Запрос выглядит примерно так;
Код: Выделить всё
{
"token":"d154c65681d38db24bffec2c70c034580b8bfadcb62b1952c4bd9f4d88414a02",
"key":"-----BEGIN CERTIFICATE-----\r\nRjt2BQNJVKUqXA\/aoQghnxdCjKT\/ZZUSL2Ll\/kauB+Y3kJCWNL7CfoWI8aPnBu7F\r\nrexvIWnS\/HLNR+uAc5Fs7wir6bT0SY1cF9ZVxzVZlZD16KGX94sxwN=WSpWcemyu4B\r\nWk5348OjME9I23tIwm9tb3BcX33LDr3CJAH5\/lsk5QnT95I6KZNkJzl26XW3+U6u\r\nFhuBPMr\/DrQXcwMHHEt8MswresrxZwSIUTzcQ7xag8n4JGnnoT8nVEuONhIM1\r\ntmF0h6PcmbK3G0zvdcoZw0k74w72\/oVOoHdq3Y+u4clxgFQNY+spQHFI1rE78Ovj\r\n1yAQm5nky9XNrJsy2PpqPg==\r\n-----END CERTIFICATE-----"
}
Код: Выделить всё
Error decrypting keys error:0200009F:rsa routines::pkcs decoding error
Исходя из моего устранения неполадок, моя проблема, похоже, заключается в следующем. если я закодирую зашифрованную строку в base64, а затем попытаюсь декодировать вывод расшифрованной строки в кодировке base64, расшифровка завершится с ошибкой декодирования rsa, указанной выше.
Я подтвердил это, зашифровав строку с помощью openssl, base64 кодирует зашифрованный вывод, затем обновляет мой PHP-код до декодирования base64, а затем пытается расшифровать декодированные данные, и это также терпит неудачу, но если я просто передаю зашифрованные данные без кодирования, все в порядке. Кажется, я не могу понять, что происходит.
Я провел еще один тест, в котором я преобразовал зашифрованный файл в шестнадцатеричный формат вместо кодирования base64, а затем преобразовал его обратно в bin, и это кажется работать нормально.
Полагаю, у меня есть способ сделать это, но может ли кто-нибудь сказать мне, почему я не могу кодировать base64 зашифрованные данные для передачи и правильно расшифровывать? Или можно, и я просто что-то делаю не так?
Подробнее здесь: https://stackoverflow.com/questions/790 ... n-body-php