要正確使用Android的SQL密碼,您必須使用外部庫並更改一些與您的數據庫交互的代碼。
這些必須首先被添加到您的項目(libs文件夾內。)請參閱這裏得到這些:http://sqlcipher.net/sqlcipher-for-android/
其次,你需要將icudt4dl.zip文件添加到您的資產文件夾,這Zip附帶SQL密碼庫。
右鍵單擊您的項目,轉到屬性,然後選擇Java構建路徑,然後包含庫,如commons-codec.jar,guava-r09.jar,sqlcipher.jar。一旦完成,建立一個乾淨的。
那麼你的應用程序中,而不是導入android.database.sqlite,您將導入進口net.sqlcipher.database
變化,這與DB,例如交互的任何代碼:
SQLiteDatabase。 loadLibs(上下文);
String dbPath = this.getDatabasePath(「dbname.db」)。getPath(); SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbPath,「dbPassword」,null); SQLiteDatabase.openOrCreateDatabase(dbPath,「dbPassword」,null);
驗證數據庫是否已加密,在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文件文件夾和資產文件夾,但在此之後它按預期工作。一旦你做了這些改變,運行一個構建/清理並檢查它是否工作。
上面提到的與更改代碼相同的步驟仍然存在。
我做了關於SQLCipher和相關安全問題的會議研討會(http://www.slideshare.net/commonsguy/sqlcipher-for-android),並在我的關於SQLCipher的書中有兩章,包括我用於該研討會的實踐部分(http://commonsware.com/Android)。 – CommonsWare
你有沒有具體的問題,你不清楚? –