我在IPhone開發一個新手,iphone數據安全
我有一個包含大量的安全重要數據的應用程序,許多搜索後,我意識到,SQLite的是把我的數據的最佳方式(大量), ,但我發現一些人在談論打破密碼保護SQLite文件, 我應該使我自己的數據結構與自定義搜索...或者有一種方法來安全地使用SQLite。
thanx提前;
編輯:如果我的數據加密和解密在運行時我來鬆鬆:
- 使用SQL
- 性能
我在IPhone開發一個新手,iphone數據安全
我有一個包含大量的安全重要數據的應用程序,許多搜索後,我意識到,SQLite的是把我的數據的最佳方式(大量), ,但我發現一些人在談論打破密碼保護SQLite文件, 我應該使我自己的數據結構與自定義搜索...或者有一種方法來安全地使用SQLite。
thanx提前;
編輯:如果我的數據加密和解密在運行時我來鬆鬆:
由於SQLite數據庫搜索只是一個文件在您的/ Documents文件夾中 - 您可以在啓動應用程序時對其進行解密,並在退出時對其進行重新加密。 iPhone中已經內置了公鑰和AES功能。
您可能想要使用用戶輸入的密碼。
一定要以原子/冪等的方式做到這一點,以便如果加密/解密/複製/移動/重命名過程中斷,您不會損壞文件!
你看過東京內閣嗎?有可能通過存儲二進制對象來實現某些功能。 (......只是一個想法)
thnx爲你的答覆,但我需要在數據使用SQL搜索,檢查:http://stackoverflow.com/questions/1226539/tokyo-cabinet-vs-sqlite3 -on-iphone – Badr 2010-11-07 07:42:08
看看http://sqlcipher.net/它使用AES(透明地)在SQLite中存儲數據 - 它應該足夠強大,以滿足您的使用情況。
其餘取決於你的情況:
1)系統離線嗎? 您將無法執行安全的持久登錄 - 每次應用程序進入前臺以訪問數據時,用戶都必須登錄。 2)您的系統是否在線? 持久登錄可能是可能的,因爲當設備丟失時,可以爲用戶/設備停用服務器端認證組件。在用戶輸入密碼並使用此令牌解鎖數據庫(具體實現由您決定,我將使用顯式設備 - 服務器與公鑰/私鑰配對)後,只需提示服務器解鎖令牌即可...
需要牢記的一個特殊情況是密碼更改。可以使用數據重新導入新的加密數據庫來處理它。要點:
您需要要求用戶輸入舊密碼才能解鎖當前數據庫進行讀取,然後爲新密碼創建新密碼,然後將舊數據導入新數據庫。當過程完成時,只需刪除舊的數據庫...
希望可以幫助...
SQLite只是設備上的一個文件。如果要加密數據,請在將其放入數據庫之前對其進行加密。 – Rudiger 2010-11-06 14:15:50
對不起,我編輯帖子更清晰 – Badr 2010-11-06 14:46:00