Я просмотрел документы RSA и предположил, что он не рекомендуется для длинного шифрования текста.
true
В зависимости от длины ключа, например, ключ 2048 с pkcs Заполнение # 1.5 предназначено для шифрования максимумов, если 245 байтов. Некоторые реализации реализуют еще меньше (144 байта, ..)
Я видел, что алгоритм использует метод генерации случайного ключа, который вызовет проблему в моем случае, так как оба приложения должны совместно использовать один и тот же ключ для шифрования и дешифрования.
На самом деле - это комбинация обоих способов, которые обычно используются. см. гибридная криптосистема
В основном - каждое приложение имеет свою собственную пару ключей, и приложения совместно используют ключи publi c сторон назначения. Вы можете использовать случайный ключ для шифрования данных и rsa для шифрования ключа данных. Тогда не стесняйтесь использовать Intend и Bundle для перемещения зашифрованных данных и зашифрованного ключа.
Это может быть хорошей отправной точкой для начала.
Редактировать:
Мне нужно отправить данные из одного моего приложения (A) в другое (B). Таким образом, A зашифрует данные и отправит данные в B с шифрованием (ключ генерируется в приложении A).
Если вы отправите ключ шифрования (назовем его ключ данных ) по обычным данным, любой, кто перехватит трафик c (намерение или пакет), сможет расшифровать данные. Так вот, где RSA входит в игру. Вы можете зашифровать ключ данных так, как только B может его расшифровать
Теперь B должен расшифровать данные. Если новый код генерации ключей будет записан в приложении B, то он создаст другой ключ и, следовательно, не сможет расшифровать ....
Попробуйте найти и узнать, как работает асимметрия c шифр (RSA) работает. Полное описание выходит за рамки вопроса, вы можете спросить другого, что в нем неясно.
По сути - приложение B должно создать пару ключей (publi c и закрытый ключ). Ключ publi c используется для шифрования, закрытый ключ - для расшифровки. A должен получить publi c ключ B для шифрования ключа данных. Как получить ключ publi c от B до A, зависит только от вас (общее хранилище, настройка в приложении, ..)
Вы хотите передать зашифрованные данные без совместного использования общего секрета между приложениями, а затем RSA - это путь к go.