2009-11-23 21 views
0

我的iPhone應用程序中有一個sqlite文件。我希望用戶能夠將應用程序直接從應用程序導出並導入到桌面,以備用途。但我不希望他們直接從iPhone以外的任何位置訪問sqlite文件或數據。如何將文件轉換爲不可讀的專有格式? objective-c中是否有任何工具可以讓我實現這個目標?導出sqlite文件 - 將其轉換爲專有格式

謝謝。

回答

3

您可能實際上不應該試圖在sqlite數據庫和某種專有格式之間移植數據。我看不出有什麼好的理由直接實際修改sqlite數據庫除非你已經有一些格式記住你可以輕鬆地存儲數據了。除此之外,你不會找到一些通用的數據存儲格式你可以簡單地將你的數據從sqlite數據庫移動到 - 這就是數據庫首先要做的(通用數據存儲,就是這樣)!

典型的用戶似乎不太可能擁有實際讀取或修改sqlite數據庫的激勵或訣竅。通過將擴展名更改爲任意值,您可以嘗試混淆它是sqlite數據庫的事實。除此之外的其他步驟(壓縮文件,以某種方式加密文件)將取決於您實際上關心用戶無法訪問應用程序之外的數據的程度。然而,你的擔心似乎根本沒有根據(我認爲),我認爲你不應該太擔心試圖挖掘和修改sqlite數據庫的用戶,除非你有一些具體的沒有說明的理由相信這一點。

+2

+1不存在「不可讀的專有格式」。如果它可以被程序讀取(爲了恢復),那麼它在定義上是可讀的。如果您出於某種原因試圖混淆數據,則應該說明您認爲自己將面臨什麼樣的攻擊者,以便您可以選擇合適的防護級別。但最終無法保護用戶在自己的計算硬件上擁有的數據或程序。 – 2009-11-23 04:39:00

+0

謝謝你。我的理由相當普通......我想最終爲我的iPhone應用程序提供桌面伴侶。我在想,如果我讓用戶將sqlite文件下載到他們的桌面,他們可以很容易地使用SQLite編輯器,比如firefox擴展「SQLite Manager」來編輯文件,使我的桌面有點多餘。但是你是對的......僅僅爲了這個目的,混淆文件是沒有意義的。也許重命名是夠好的。 – 2009-11-23 05:39:32

相關問題