开门见山,本文主要讲在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步的名称。