Если вы не хотите, чтобы кто-то декомпилировал приложение и находил ключ, тогда лучше всего никогда не вводить ключ в приложение.Вместо этого заставьте их проходить аутентификацию на вашем сервере (через TLS / SSL), чтобы получить ключ, который согласовывается во время выполнения для каждого клиента.
После согласования симметричного ключа его можно использовать длязашифровать / расшифровать ваши данные для транзита.Конечно, возникает вопрос, почему вы просто не используете SSL?Это дает вам сквозное шифрование между клиентом и сервером.
Конечно, злоумышленник все равно может извлечь ключ дешифрования из ОЗУ, когда приложение работает в их системе.Таким образом, они могли бы расшифровать данные между приложением, которое они запускают, и сервером, но не смогли бы расшифровать данные, передаваемые другими пользователями приложения (потому что у каждого из них свой ключ).
Выне может вставить ключ в приложение любым способом, который не может быть обнаружен злоумышленником.Ваше приложение должно найти и использовать его;процесс вашего приложения приведет к этому злоумышленника.Так что не кладите это туда.