- используйте jumpycastle, чтобы получить пару ключей, PrivateKey и PublicKey
зашифруйте исходное сообщение1 с помощью закрытого ключа, чтобы получить зашифрованное сообщение2. - расшифровайте зашифрованное сообщение2 с помощью открытого ключа. , успешно получите то же исходное сообщение1
- на основе openssl, API «RSA_public_decrypt» и «RSA_private_encrypt».
- используют один и тот же открытый ключ (который сгенерированный на стороне Java), чтобы расшифровать сообщение2, вернуть буфер, в котором каждый байт заполнен 0, и RSA_public_decrypt вернет успех.
- на стороне C++, если использовать частный ключ для шифрования исходного сообщения1, чтобы получить зашифрованное сообщение3, а затем расшифровать его с помощью открытый ключ, успешное получение сообщения1. но сообщение3 не совпадает с зашифрованным сообщением2 (сторона Java).
- все вышеперечисленное использовало RSA_NO_PADDING
- на стороне Java, зашифровано больше раз, получите то же сообщение2
- на Сторона C++, зашифрованная несколько раз, тоже получит то же сообщение3. но сообщение2 отличается от сообщения3.
спасибо!
Подробнее здесь: https://stackoverflow.com/questions/417 ... penssl-api