開門見山,本文主要講在Mac下使用SQLCipher編譯解密數據庫文件方法,iOS項目集成SQLCipher本身能夠百度,網上帖子不少。html
官方集成文檔:https://www.zetetic.net/sqlcipher/ios-tutorialios
SQLCipher:https://github.com/sqlcipher/sqlciphergit
1、編譯github
1. 這個步驟可參考文章:(http://www.cnblogs.com/eileenleung/p/5456907.html中Terminal 上安裝 SQLCipher部分),做者寫的很詳細,就不囉嗦了。若是按照文中步驟make成功,下面2-6步驟可忽略,若make始終不成功,並報 openssl/rand.h 找不到錯誤;能夠首先執行以下第6步驟(首先判斷你的openssl路徑和以下命令路徑符合);若是沒有安裝openssl;老實執行2-6步驟:sql
注意:若是在上做者文章中按照1,2步驟完成後,始終仍是不能make成功,,可以下執行:數據庫
2. make cleanruby
3. 安裝brew命令:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"curl
4. 安裝openssl: brew install openssl加密
5. 連接: brew link openssl --forceurl
6. 關鍵一步:把第一步的 ./configure --enable-tempstore=yes CFLAGS=
"-DSQLITE_HAS_CODEC"
LDFLAGS=
"-lcrypto" 命令
修改爲 ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto -L/usr/local/opt/openssl/lib" CPPFLAGS="-I/usr/local/opt/openssl/include" ,執行,成功,而後 make,編譯成功;
其中: 「LDFLAGS: -L/usr/local/opt/openssl/lib 和 CPPFLAGS: -I/usr/local/opt/openssl/include」 這兩個路徑能夠使用命令: brew info openssl 找到。
至此,編譯成功,下面能夠根據已加密的數據庫文件和密碼進行解密操做了,參考 2、解密 。
2、解密
1.切換到你的sqlcipher目錄下,執行:./sqlcipher 要解密的數據庫路徑
2. PRAGMA key = '你的加密密碼';
3. ATTACH DATABASE '要解密的數據庫名稱(能夠和第1步數據庫名稱不一樣)' AS plaintext KEY '';
4. SELECT sqlcipher_export('plaintext');
5. DETACH DATABASE plaintext;
6. .q 退出
切換到你的sqlcipher目錄下,就找到你剛纔解密的數據庫了,名稱就是第3步的名稱。