Возможно запутать / Зашифровать файл SharedPreferences? - PullRequest
3 голосов
/ 29 апреля 2011

Итак, я заинтересован в запутывании xml-файла SharedPreferences в моем приложении, так же, как Android LVL делает, чтобы запутать свои данные лицензии. Это было бы возможно? Многочисленные поиски в Google дали мало результатов, которые могли бы решить мой вопрос. И я, конечно, не криптолог.

А как насчет других форм шифрования? Моя конечная цель не состоит в том, чтобы попытаться сделать xml пуленепробиваемым, я просто хочу заблокировать более 90% людей, которые воздержались бы от того, чтобы возиться с ним, если он не в открытом тексте.

Ответы [ 5 ]

3 голосов
/ 04 июня 2012

Как насчет запутывания ключей и значений, хранящихся в preference-XML?

Я создал оболочку для общих настроек, которая шифрует и ключи, и значения: https://github.com/sveinungkb/encrypted-userprefs

3 голосов
/ 29 апреля 2011

Не верьте, что это возможно, не без серьезных модификаций (возможно, напишите свою собственную реализацию Preferences), и я даже не мог подумать о том, как вы убедите Android загрузиться из вашей реализации Preferences.

Реализация SharedPreferences по умолчанию не заменима, насколько я могу судить: если вам нужно что-то зашифровать, делайте то, что делает LVL, и либо шифруйте значение, которое вы записываете в XML SharedPreferences, либо создайте свой полностью зашифрованный файл и управляйте имдиск сам.

2 голосов
/ 02 февраля 2013

Я создал реализацию SharedPreferences с использованием шифрования AES.Проект представляет собой модуль Maven.Если вам нужно, посмотрите.https://github.com/kovmarci86/android-secure-preferences

2 голосов
/ 13 ноября 2011

Разве вы не можете использовать схему для изменения данных каким-либо образом, чтобы сделать их непостижимыми для большинства людей?Я могу предложить один способ.Во-первых, используйте строку фиксированного размера, чтобы она не изменяла длину при сохранении данных.Затем вы можете применить некоторую простую функцию для переключения байтов и смещения каждого байта.Таким образом, конечный результат все равно будет строкой, но для нормального человека будет трудно понять, что это такое, хотя человек, склонный к взлому, может добиться успеха.

0 голосов
/ 07 апреля 2017

что вы можете сделать, это ... обернуть разделяемые настройки вашим собственным методом ... и избегать использования имени вашего метода, такого как "Encrypt", "Decrypt", "String" и т. Д., Потому что proguard не будет запутывать слово ..

вот например https://github.com/afiqiqmal/ConcealSharedPreference-Android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...