RSA Как на Java восстановить ключ и зашифровать данные по созданному на Python? Создали на Python приватный и публичный ключи:import rsa
(pubkey, privkey) = rsa.newkeys(512)
Публичный передаю клиенту на Java (modulus, exponent). Как по этим параметрам восстановить объект для зашифровки сообщения?
На Python та же проблема, если есть объект, то легко шифруется, а как получить этот объект из этих параметров?
Или нужно что-то ещё?

21 Авг 2019 в 07:11
213 +1
0
Ответы
1

На Java для восстановления объекта ключа RSA из переданных параметров модульиэкспонентамодуль и экспонентамодульиэкспонента, можно воспользоваться классом RSAKeyParamsSpec из библиотеки Bouncy Castle. Вот пример кода:

import org.bouncycastle.crypto.params.RSAKeyParameters;
import org.bouncycastle.crypto.params.RSAPublicKeyParameters;
import org.bouncycastle.crypto.params.RSAKeyGenerationParameters;
import java.math.BigInteger;
//Получаем переданные параметры modulus и exponent
BigInteger modulus = new BigIntegermodulusBytesmodulusBytesmodulusBytes;
BigInteger exponent = new BigIntegerexponentBytesexponentBytesexponentBytes;
//Создаем объект RSAKeyParamsSpec
RSAKeyParameters keyParams = new RSAPublicKeyParameterstrue,modulus,exponenttrue, modulus, exponenttrue,modulus,exponent;
//Теперь можно использовать объект keyParams для шифрования данных

На Python для восстановления объекта ключа RSA из переданных параметров аналогично можно воспользоваться объектом RSA.construct из библиотеки Crypto. Вот пример кода:

from Crypto.PublicKey import RSA
#Получаем переданные параметры modulus и exponent
modulus = int.from_bytesmodulusBytes,byteorder=′big′modulusBytes, byteorder='big'modulusBytes,byteorder=big exponent = int.from_bytesexponentBytes,byteorder=′big′exponentBytes, byteorder='big'exponentBytes,byteorder=big
#Создаем объект ключа RSA
key = RSA.construct(modulus,exponent)(modulus, exponent)(modulus,exponent)
#Теперь можно использовать объект key для шифрования данных

После того, как вы восстановите объект ключа на Java и Python, вы сможете использовать его для шифрования данных с помощью соответствующих методов шифрования в каждой из библиотек.

20 Апр 2024 в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир