на Java стороне:RSA шифруется на Java, не может расшифровать на C++ с помощью OpenSSL API
использования BouncyCastle, чтобы получить пару ключей, PrivateKey и ОткрытыйКлюч
шифровать Orig Сообщение1 с PrivateKey, чтобы получить зашифрованного message2
расшифровывать зашифрованы message2 с ОткрытыйКлюч нормально, успех, чтобы получить тот же Orig Сообщение1
на C++ стороне:
на основе OpenSSL, "RSA_public_decrypt" и "RSA_private_encrypt" API
использовать один и тот же PublicKey (который генерируется на стороне Java), чтобы decryt в message2, возвращают буфер с каждым байтом, заполненным 0, и RSA_public_decrypt возвращают успех.
дополнительно:
на C++ стороны, если использовать PrivateKey для шифрования Orig Сообщение1, чтобы получить зашифрованный message3, а затем расшифровать его с помощью открытого ключа, успех, чтобы получить Сообщение1. но сообщение 3 не совпадает с зашифрованным сообщением2 (сторона java).
все выше используется RSA_NO_PADDING
на стороне Java, encryted несколько раз, получить ту же message2
на C++ стороны, шифруется несколько раз, получить то же message3 тоже. но сообщение2 не одинаково к сообщению3.
вопрос заключается в том, чтобы расшифровать на C++ сторону, чтобы получить ориг message1 которым шифруется на стороне Java?
спасибо!
Java использует по умолчанию RSA/ЕЦБ/PKCS1Padding ... см пост: RSA/ECB/PKCS1Padding –
К сожалению, пост: http://stackoverflow.com/questions/21066902/default-rsa-padding -in-sun-jce-oracle-jce ... Итак, при расшифровке в C++ используйте эту схему дополнений –
Наверняка вы не ожидаете, что мы угадаем, что не так с вашим кодом. Отправьте свой код. Также см. [Как создать минимальный, полный и проверенный пример] (https://stackoverflow.com/help/mcve). – jww