2012-06-15 3 views
4

Im создание приложения, которое использует Sqlite DB. Пользователи могут вводить свою информацию в базу данных и извлекать их. Однако я хочу, чтобы они могли создавать резервные копии sqlite db. Что я делал, так это помещение sqlite db в папку с документами, чтобы они могли извлечь его с помощью iTunes. Например, если ipad неисправен, я хочу, чтобы они могли передавать sqlite db в другой ipad.Sqlite db security

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

+0

Безопасность SQLite? Хахаха. Не позволяйте другим людям иметь доступ к нему. Одним из решений является экспорт/резервное копирование в [четко определенный] формат XML или «фальшивый структурированный» файл базы данных SQLite. Или * зашифровать * резервную базу данных (например, в ZIP + пароль). Или просто измените расширение файла (это будет работать для большинства людей, которых я предполагаю). Другое решение - использовать модифицированную версию SQLite, например FF, а затем * разорвать ее * на совместимость с другими программами SQLite (например, добавив кучу «лишних вещей») в конце. Я вообще не рекомендую последний подход. –

ответ

6

Вот ваш ответ: link, SQLCipher - лучшая вещь, которая зашифрует всю базу данных, и если кто-нибудь получит базу данных с устройства iOS, любой способ, по-прежнему будет запрашивать пароль, иначе не будет позволяют пользователю видеть то же самое. даже в командной строке пользователь не сможет увидеть базу данных.

Надеюсь, что это будет полезно ....

+3

Чтобы телефон мог расшифровать его, ключ должен быть где-то в приложении, а это означает, что определенный пользователь сможет в конечном итоге получить его. Этот ответ дает ложное чувство безопасности. – ceejayoz

+0

Код, который никто не может получить, так как любой человек получит ваш ключ? В противном случае вы можете получить ключ от веб-служб. –

+0

@ceejayoz в любом случае не имеет абсолютной безопасности, и использование чего-то определенного для оборудования ключа (IMEI и так далее) приведет к вытеснению 99,99% обычных пользователей и 90% хакеров. И для серьезной защиты данные не должны храниться на устройстве в первую очередь. –