Я использую код шифрования RSA, приведенный на this link для шифрования строк, таких как следующие с 128 байт открытых ключей:шифровать длинный текстовую строку с использованием шифрования RSA только
[7998725336653383203658644639673805448553730986337128386926545744008381384348409264866333582258561179132241508936069720871865895053632019929236743348039021, 1993938860438750843589842757968313427718259534664174282914852335272086243792497573680387148722647412680490224484736059954284097163105446004304579443902885]
Поскольку строка слишком долго RSA_public_encrypt
функция возвращает -1
и строку null
. Я знаю, что RSA следует использовать для текстов небольшого размера, есть ли способ вокруг этого?
Я использовал ERR_error_string()
, чтобы проверить коды ошибок, и он вернул мне следующую строку кода ошибки: error:0406D06E:lib(4):func(109):reason(110)
.
Теперь, поскольку этот вопрос был отмечен как возможный дубликат, пожалуйста, позвольте мне объяснить, что мне нужно сделать это, используя только RSA, потому что комбинация AES-RSA сделает весь дизайн системы расширения chrome, который я пишу, гораздо сложнее, чем уже. Я хочу сохранить его как можно более упрощенным.
Возможный дубликат [Как зашифровать/расшифровать длинные сообщения ввода с помощью RSA? \ [Openssl, C \]] (http: // stackoverflow.com/questions/19344122/how-to-encrypt-decrypt-long-input-messages-with-rsa-openssl-c) –
Да, я видел это, и это не решает мою цель, если я делаю AES-RSA двойное шифрование, то это изменит всю существующую модель и сделает систему более неэффективной. Можно ли это сделать в кусках? – bawejakunal
Неэффективен? Напротив, AES намного быстрее, чем RSA, поэтому потребуется только один вызов RSA. Другой возможностью было бы зашифровать RSA в кусках (намного медленнее), что также обсуждается в связанном вопросе. Вы также можете использовать более крупные модули, но это не масштабируется. –