Где безопасно положить большие данные в Android - PullRequest
2 голосов
/ 15 августа 2011

Мне нужно хранить много изображений, которые нужно загрузить с веб-сервера.Размер изображений может быть 80 МБ.Поэтому я хочу, чтобы руководство, где их хранить, во внутренней или внешней памяти.Оба создают некоторые проблемы для меня.Как известно каждому, внутреннее хранилище очень ограничено, но проблема с внешним хранилищем состоит в том, что пользователь может получить доступ к изображениям.Я не хочу, чтобы изображения моего приложения были выставлены пользователю и изменены или удалены.Так есть ли альтернатива или метод безопасного хранения данных во внешнем хранилище?

Ответы [ 5 ]

2 голосов
/ 15 августа 2011

К сожалению, нет, внешнее хранилище имеет файловую систему FAT, которая не поддерживает ограничение доступа.И вы просто не должны хранить такие большие куски данных во внутренней памяти (иначе вы, мягко говоря, не понравитесь пользователям).

Таким образом, единственный способ - использовать внешнее хранилище.Если вам нужна защита, то вы можете либо зашифровать / расшифровать данные.Или просто запутать данные, например, изменить расширение файла или добавить 10 байтов в начале каждого файла.Обфускация более эффективна в отношении ресурсов, но гораздо менее защищена.Хотя ключ шифрования все еще можно извлечь из вашего приложения, поэтому оба эти подхода имеют свои потоки.

1 голос
/ 15 августа 2011

Использовать шифрование для содержимого файла:

Я нашел хороший и легкий пример кода на http://www.androidsnippets.com/encryptdecrypt-strings

1 голос
/ 15 августа 2011

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

0 голосов
/ 15 августа 2011

Если вы используете Android 2.3, ваш выбор - OBB.

http://developer.android.com/reference/android/os/storage/StorageManager.html

OBB содержат файловую систему, которая может быть зашифрована на диске и смонтирована по требованию из приложения. OBB являются хорошим способом предоставления больших объемов двоичных активов без упаковки их в APK, так как они могут иметь размер в несколько гигабайт. Однако из-за их размера они, скорее всего, хранятся в общем пуле хранения, доступном для всех программ. Система не гарантирует безопасность самого файла OBB: если какая-либо программа модифицирует OBB, нет гарантии, что чтение из этого OBB даст ожидаемый результат.

Связанные Что такое OBB (Opaque Binary Blob) на сайте разработки Android?

0 голосов
/ 15 августа 2011

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

...