資料庫加密有兩種方式:
1.對所有資料進行加密
2.對資料庫檔案加密
對比以上兩種方式,第一種方式的常見做法是是將要儲存的內容先加密然後存到資料庫中,使用的時候將資料庫解密,但是這樣會消耗很多時間,大部分效能消耗在資料的加解密上,同時,第二種方式,sqlite本身支援加密功能(免費版的不支援) ,sqlcipher是乙個開源的sqlite加密擴充套件,支援對db檔案進行256位的aes加密,通常我們會用fmdb這個工具庫,fmdb對原生的sqlite進行了封裝,提供了物件導向的方式對資料庫操作,同時fmdb 也提供了對 sqlcipher 的支援。
整合sqlcipher
編譯sqlcipher需要做一些配置,具體配置詳情見:這裡我們使用cocoapod 引用 fmdb 和sqlcipher。
1.獲取sqlcipher加密模組
podfile中新增pod 『fmdb/sqlcipher』。
2.匯入sqlcipher
執行 pod install後自動獲取sqlcipher,sqlcipher只有兩個檔案sqlite3.h、sqlite3.m,如果不是通過cocoapods獲取sqlcipher模組的話需要手動拷貝sqlite3.h、sqlite3.m檔案到工程中。
3.配置xcode
通過巨集(sqlite_has_codec)來配置sqlite是否開啟加密模組,我們需要在xcode中配置開啟加密模組元件的巨集,本文介紹cocoapods方式的則不用配置。
(1)target -> build setting -> other c flags新增-dsqlite_has_codec、-dsqlite_temp_store=2、-dsqlite_threadsafe、-dsqlcipher_crypto_cc幾項配置
(2)target -> build setting -> other linker flags新增-framework security配置
4.新增加密**
說明:如果專案中原來有fmdb,不推薦直接引入fmdb/sqlcipher,修改後不利於類庫的統一管理和更新。我們可以直接將sqlite3.h、sqlite3.m檔案拖到工程中,然後配置xcode即可。簡單來說步驟如下:
(1)在你有fmdb的工程裡,加入sqlite3.h 和 sqlite3.m
(2)在工程的build setting裡修改兩個配置
乙個是other c flags ,如上面圖的那個 other c flags
乙個是 other link flags , 入上圖那個other lilnk flags
然後fmdatabase 的 setkey 方法就可以用了,在開啟資料庫後,呼叫此方法,資料庫檔案就加密可以了。
資料探勘 資料
對關注的屬性,樣本與原始資料集有相同的性質,則用抽樣計算的結果與全集是一樣。1.1 抽樣的方法 1 簡單隨機抽樣 random sampling 放回 不放回 2 分層抽樣 stratified sampling 如果資料集不同型別的資料數量差異過大,則隨機抽樣會丟失數量少的樣本。可針對不同資料組,...
大資料資料
作業系統 核心 分配和管理硬體 庫 沒有入口的應用軟體 應用軟體 1 設定網絡卡為nat模式 2 確保windows下的服務是否啟動 dhcp,net服務 3 編輯檔案 vi etc sysconfig network scripts ifcfg eth0 4 onboot yes 5 設定ip s...
大資料 資料分析 資料探勘
在大資料領域裡,經常會看到例如資料探勘 olap 資料分析等等的專業詞彙。如果僅僅從字面上,我們很難說清楚每個詞彙的意義和差別。大講台老師通過一些大資料在高校應用的例子,來為大家說明白 資料探勘 大資料 olap 資料統計的區別。一 資料分析 資料分析是乙個大的概念,理論上任何對資料進行計算 處理從...