Есть ли способ защитить данные внутри SD-карты?

Как мы все знаем, внутреннее хранилище не подходит для хранения больших данных в Android по многим причинам, поэтому мы должны полагаться на SD-карту. Мое приложение должно хранить множество небольших видео и изображений в папке кеша, поэтому я использую стандартную директорию "/sdcard/Android/cache".

Проблема заключается в том, что внутреннее хранилище не так легко прочитать, а легко прочитать и установить в другом месте.

Моя идея состоит в том, чтобы переопределить классы потоков входного и выходного файлов, чтобы ввести оператор xor или какой-либо другой простой код "скремблирования". Это было бы хорошей идеей? Есть ли лучшее решение, которое не добавляет много накладных расходов?

4 ответа

Решение

Если у вас много изображений, у вас должен быть бэкэнд БД, вам просто нужно создать ключ (не знаю) 32 символа для каждого изображения, а затем, когда вы пишете файлы в кеш, разделить этот ключ на 4/6/8 и запишите 4/6/8 файлов вместо одного.

Таким образом, будет не так просто прочитать данные, потому что вы должны знать, какие чанки и порядок чанков находятся в БД, которая хранится в внутреннем каталоге.

Никаких накладных расходов вообще.

Вы всегда можете попробовать зашифровать данные. Здесь есть хороший ответ, который вы можете посмотреть:

Есть ли способ безопасно хранить пользовательские данные на устройстве Android?

Поскольку файловая система более чем вероятна, то fat или fat32 защищают ее, основанный на разрешениях способ будет более замысловатым.

Если вы храните плоские текстовые файлы, я бы предложил найти сложный алгоритм кодирования и декодирования вместе с несколькими "проходами". Это не будет слишком безопасно, однако.

Если вы можете изменить или преобразовать файловую систему, вы можете открыть некоторые параметры. Вы можете использовать EFS от MS. Но это работает, если вы конвертируете объем в ntfs. Я уверен, что Android не может прочитать эту файловую систему. Особенно с EFS.

Я рекомендую вам зашифровать данные и хранить ключ в личном хранилище.

Не используйте xor или что-нибудь подобное Это будет тривиально расшифровано.

Другие вопросы по тегам