2010-06-29 96 views
20

我正在開發一個將存儲用戶敏感數據的應用程序。我的問題是使用其他應用程序,用戶可以查看存儲的數據。那麼我需要爲數據提供更好的安全性。Sqlite數據庫安全

有什麼辦法可以爲SQLite數據庫和表提供更好的安全性嗎?

回答

6

sqlite的作者提供了一個加密數據的版本。這不是免費的,雖然

+3

這似乎免費現在在http://www.sqlite.org/see/ – skv 2014-06-29 03:52:11

+0

@Jay是正確的 - 許可證是永久許可證$ 2000美元。 – DustinB 2017-10-21 04:02:26

15

在將數據輸入數據庫之前對數據進行加密。據我所知,SQLite數據庫保存在/ data /目錄中的某個文件中。更重要的是,您的數據以純文本格式保存。這意味着有人可以通過將電話生根,獲取.db SQLite文件並用文本編輯器打開它來提取數據。

所以,您的數據加密:)

- 好吧,也許不是一個文本編輯器,但一個簡單的十六進制編輯器。無論如何...

+14

任何人能反編譯的APK,並得到解密密鑰。 – CommonsWare 2010-06-29 11:59:29

+1

@CommonsWare:嗯,是的,但建議一個更好的方法。我們正在討論保護SQLite數據庫。如果問題是關於總體數據安全性的話,那麼將數據存儲在某個地方的後端服務器上(通過安全連接進行通信)將是更好的方法。 – Shade 2010-06-29 13:16:30

+2

沒有「更好的辦法」。任何能夠對其電話進行生根的人都能夠反編譯APK並獲得解密密鑰。加密數據庫可以保護你免受某些百分比的人(那些知道如何根,但不打擾解密密鑰的人)。這是一個相當基本的安全規則,您無法完全保護數據,防止持有相關設備的用戶訪問數據。 – CommonsWare 2010-06-29 14:00:35

0

你爲什麼要把敏感數據保存在手機上?如果它敏感,爲什麼不把它發回到你有控制權的服務器上。如果用戶根據他們的電話,他們可以基本上做他們想要的。除此之外,像Shade提及的加密可能是您唯一的選擇...

5

您可以使用從您的服務器檢索到的用戶特定鹽加密數據。這樣,即使使用root權限,您也需要用戶salt來解密數據庫。既然你已經控制了salt,你提供了一個額外的安全層,但是,你的用戶總是需要一個網絡連接來訪問他們的數據。

11

退房SQLCipher for Android。它是免費的(Apache 2和BSD許可證)。

PS .:一些ORM現在也支持SQLCipher,例如,我們的greenDAO

0

保護數據庫的好方法是使用密碼保護的數據庫,你可以通過創建

1-安卓SQL3包裝庫

2- libsqlite3_jni.so

還請閱讀下面的文章是讓你的搜索上面的選項,我希望這會有很大的幫助。能夠生根自己的手機的

http://www.findbestopensource.com/product/sqlite3-android