В Android все, что хранится на SD-карте, не защищено разрешениями и может быть доступно любому приложению, имеющему разрешение на прикосновение к SD-карте (и любому / любому, кто может вытащить карту и прочитать ее в другом месте).По сути, вы должны предположить, что если вы разместите ресурсы там, они могут быть доступны любому.Итак, вы правы, вы хотите зашифровать эти ресурсы, чтобы даже при таком доступе никто не мог получить к ним доступ.
В Android предусмотрена широкая поддержка хорошо известной криптографии.В этом случае вы захотите использовать симметричное шифрование.В настоящее время рекомендуется использовать AES с 256-битными ключами, которые изначально поддерживаются в библиотеках классов Android.Существует множество ресурсов о том, как это сделать, в документации для разработчиков в Интернете, а также полное изложение всех проблем, о которых нужно подумать, и примеров кода всего процесса в Безопасность приложений для платформы Android (отказ от ответственности: я автор этой книги).
Вам нужен ключ для шифрования этих данных, и вы должны хранить этот ключ в секрете (любой, кто знает, что он может расшифровать данные).У вас есть два варианта ... (1) запрашивать пароль у пользователя каждый раз, когда он использует приложение, и затем извлекать ключ из этого пароля, или (2) сохранять пароль в вашем приложении.(2) опасно, поскольку приложения Android могут быть легко восстановлены, когда злоумышленник может просто заглянуть в ваше приложение и найти ключ.(1) предпочтительнее, так как тогда злоумышленник не хранит ключ для восстановления ... компромисс в том, что вашим пользователям необходимо ввести пароль для использования вашего приложения.Что вы должны сделать здесь, это функция анализа риска ... насколько важны эти данные?Вам нужна надежная защита или вы защищаете его, чтобы атакующему было только труднее?Только вы можете ответить на это, исходя из ваших вариантов использования и чувствительности / риска ваших данных.