Как защитить строку в приложении Android?

Как защитить строку в приложении Android?

Опции:

  1. ProGuard: Он не защищает строку? Работает ли proguard для обфускации статических строковых констант?

  2. Шифрование строки: для шифрования Мне нужно хранить ключ шифрования (строку) где-то там, где и снова это одна и та же проблема, как защитить ключ шифрования.

  3. Извлечь строку из веб-службы: но это решение не будет работать для меня, так как у приложения нет требования / доступа к Интернету, это требование / бизнес-решение.

  4. NDK: напишите c-файл, который содержит строку и возвращает с использованием JNI, но я обнаружил, что Hex-Ray декомпилирует файл * .so https://www.hex-rays.com/index.shtml

================================================

Функция в C

jstring Java_com_abc_xyz_getString(JNIEnv* env, jobject javaThis) { return (*env)->NewStringUTF(env, "Hello String"); } 

====================================

Пожалуйста, предложите лучший вариант для защиты строки в Android SDK / NDK.

Ключевая защита и распределение – большая дыра в криптографии. Он должен быть где-то доступен в то время, когда вам нужно расшифровать данные.

Итак, если ваша строка вводится кем-то с помощью устройства, вы можете использовать в качестве ключа устройства serial # / IMEI # / etc. Несколько безопасно, но не так сложно перепроектировать. Это позволило бы дешифровать данные локально без ввода пользователем пароля, но не позволяло бы распределять данные зашифрованными.

Если вы пытаетесь распространять зашифрованные данные с приложением, как вы обнаружили, ключи должны быть локальными на устройстве. Без связи с внешним миром единственным выбором является устройство или пользователь приложений.

Возможно, если бы вы могли дать нам намеченный рабочий процесс, вы могли бы получить более полезные предложения?

Intereting Posts
Inflate ActionBarSherlock Меню определено в XML JsonHttpParser устарел Прерывание потока не работает (Java Android) Ярлык в Polyline Google Maps V3 Как я могу получить результат для намерения поделиться? Как загрузить изображение через байтовый массив с помощью Glide? AddProximityAlert не работает (также не запрашиваетLocationUpdates) – Android Как заставить AccountManager отображать экран «Запрос доступа» после того, как пользователь уже разрешил доступ? Добавление / удаление страниц в ViewPager динамически Android: получение количества видимых детей в списке Как получить имя приложения APK программно (не установлено) Использование цветов для новой темы дизайна материалов в Android Inflater и петля не работают так, как должны Как настроить инъекцию зависимостей с помощью кинжала для вещей, отличных от действий и фрагментов? Определите, что пакет Android предварительно установлен поставщиком