Подтвердить что ты не робот

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

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

Параметры:

  • ProGuard: Он не защищает строку? Выполняет ли proguard обфускацию статических строковых констант?

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

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

  • NDK: напишите c файл, который содержит строку и возвращает с помощью JNI, но я обнаружил, что Dex-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.

4b9b3361

Ответ 1

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

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

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

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