2013-02-01 44 views
0

我正在使用我的android應用程序中的sqlite。sqlite的內部存儲

我在問這個荒謬的問題,但有效。

  1. 任何人都可以複製我的數據庫存儲在內部存儲?
  2. SD卡製作數據庫的安全性如何?

回答

0

第二個問題:不是很安全。如果可以,請使用內部存儲器,這會更安全。任何程序都可以編輯SD卡上的任何內容,因此所有人都必須將卡插入計算機,安裝sqlite數據庫,並且可以完全訪問數據庫,包括讀取/寫入/編輯。

但是,理論上講,內部存儲是安全的,但是,如果一個人擁有根植設備,他們甚至可以進入這個領域。但是,這不會是很多人,你只需要留意它。

如果您確實需要針對每一次嘗試找到安全的解決方案,您可以查看加密的數據庫。

第一個問題:當然,您可以複製數據庫,就像複製任何文件一樣。

+0

感謝ans.but你沒有得到我的第一個問題。我是再次編輯.. – Unknown

+0

什麼即時消息說,是可以偷我的數據如果是內部的內部存儲...任何可能性..any其他用戶通過編程方式 – Unknown

+0

是的,根用戶可以做它.. – Shiv

0

您可以將數據庫複製到SD卡,但它不會安全。任何讀取SD卡的應用程序或外部設備都可以訪問它。

0

任何有權訪問SD的人都可以在技術上覆制您的sqlite文件。我不認爲內部存儲是足夠安全的(因爲您可以對設備進行根目錄並具有管理訪問權限,您幾乎可以在那裏做所有事情)。無論如何,這裏有一個鏈接如何copy your sqlite file to the internal storage

0

因爲SD卡不夠安全,您必須在一段時間後將您的數據庫發送到服務器。並在複製整個DB文件夾的代碼下面。

public static void copyDirectoryOneLocationToAnotherLocation(File sourceLocation, File targetLocation) 
     throws IOException { 

    if (sourceLocation.isDirectory()) { 
     if (!targetLocation.exists()) { 
      targetLocation.mkdir(); 
     } 

     String[] children = sourceLocation.list(); 
     for (int i = 0; i < sourceLocation.listFiles().length; i++) { 

      copyDirectoryOneLocationToAnotherLocation(new File(sourceLocation, children[i]), 
        new File(targetLocation, children[i])); 
     } 
    } else { 

     InputStream in = new FileInputStream(sourceLocation); 

     OutputStream out = new FileOutputStream(targetLocation); 

     // Copy the bits from instream to outstream 
     byte[] buf = new byte[1024]; 
     int len; 
     while ((len = in.read(buf)) > 0) { 
      out.write(buf, 0, len); 
     } 
     in.close(); 
     out.close(); 
    } 

} 
+0

你仍然有一個sqlite拷貝到SD中,所以它仍然被訪問。我將您的答案看作是單向備份系統(但基本,有用於開始編碼) – Korcholis

+0

這是用於將數據庫複製到SD卡的代碼,但這不是一個好方法,因此您必須將數據庫備份發送到服務器複製(或備份) – duggu

+0

但是OP聲稱sqlite文件是否可以被其他人破壞。可訪問存儲/ SD。如果我沒有弄錯,他想知道是否有人可以看到他自己的數據庫裏面有什麼,而不是在腐敗的情況下保存它(這也很酷) – Korcholis