2013-07-16 29 views
12

我需要使用SQLCipher for android ...我已經使用SQLite創建了我的應用程序,並且只想將其轉換爲SQLCipher。如何開始使用SQLCipher for android?

問題是,我對SQLCipher一無所知。

我已經在這個環節上讀到它:http://sqlcipher.net/sqlcipher-for-android/

但我不是太清楚,還是。 我想知道你是否可以爲android教程提供一些基本的sqlcipher,其中的一切都是從絕對基礎知識中以簡單的方式教授的。

謝謝!

+3

我做了關於SQLCipher和相關安全問題的會議研討會(http://www.slideshare.net/commonsguy/sqlcipher-for-android),並在我的關於SQLCipher的書中有兩章,包括我用於該研討會的實踐部分(http://commonsware.com/Android)。 – CommonsWare

+0

你有沒有具體的問題,你不清楚? –

回答

23

要正確使用Android的SQL密碼,您必須使用外部庫並更改一些與您的數據庫交互的代碼。

  1. 這些必須首先被添加到您的項目(libs文件夾內。)請參閱這裏得到這些:http://sqlcipher.net/sqlcipher-for-android/

  2. 其次,你需要將icudt4dl.zip文件添加到您的資產文件夾,這Zip附帶SQL密碼庫。

  3. 右鍵單擊您的項目,轉到屬性,然後選擇Java構建路徑,然後包含庫,如commons-codec.jar,guava-r09.jar,sqlcipher.jar。一旦完成,建立一個乾淨的。

  4. 那麼你的應用程序中,而不是導入android.database.sqlite,您將導入進口net.sqlcipher.database

  5. 變化,這與DB,例如交互的任何代碼:

    SQLiteDatabase。 loadLibs(上下文);

    String dbPath = this.getDatabasePath(「dbname.db」)。getPath(); SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbPath,「dbPassword」,null); SQLiteDatabase.openOrCreateDatabase(dbPath,「dbPassword」,null);

  6. 驗證數據庫是否已加密,在Eclipse中轉到DDMS視圖,單擊文件資源管理器選項卡,導航到data/data /,單擊.db文件並選擇獲取設備文件,將其保存到桌面,用文本編輯器打開它。查找已插入數據庫的純文本值,如果仍然可以讀取它們,則出現問題。

在實現SQL Cipher之前查看一些SQLite教程也許是個好主意。一個好的就是這裏所說的: Android sqlite database - where do i start as the tutorial has gone for notepad?

更新

這個答案現在已經過時和Eclipse實際上棄用Android的發展。我最近不得不在Android Studio 5 + 6上使用SQLCipher構建應用程序,這些都是我遵循的步驟。

在Android Studio中,您可以將SQLCipher作爲依賴項包含在構建文件中。在更新的gradle構建你的依賴,以包括以下行:

dependencies{ 
    compile 'net.zetetic:android-database-sqlcipher:[email protected]' 
} 

您可以跟上最新與這裏的版本: https://mvnrepository.com/artifact/net.zetetic/android-database-sqlcipher

我的應用程序不會建立,除非我在lib刪除SQLCipher文件文件夾和資產文件夾,但在此之後它按預期工作。一旦你做了這些改變,運行一個構建/清理並檢查它是否工作。

上面提到的與更改代碼相同的步驟仍然存在。

+1

請參閱此帖子,因爲它更新:http://stackoverflow.com/a/34309425/684582 –

7

儘管您仍然可以按照Zetetic's Eclipse tutorial的要求自行添加.so庫,但您確實不需要在Android Studio中執行此操作。只需添加一個Gradle依賴項,就像compile net.zetetic:android-database-sqlcipher:[email protected]一樣,然後就可以開始了!

Here你可以隨時檢查最新的版本和here你可以閱讀更多關於集成。