问题很简单
我拥有的是:
我需要的是:
答案 0 :(得分:32)
mkdir ~/bld; # Build will occur in a sibling directory
cd ~/bld; # Change to the build directory
../sqlcipher/configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="-lcrypto";
#configure sqlcipher
make install; # Install the build products
$ cd ~/;
$ ./sqlcipher encrypted.db
sqlite> PRAGMA key = 'testkey';
sqlite> ATTACH DATABASE 'plaintext.db' AS plaintext KEY ''; -- empty key will disable encryption
sqlite> SELECT sqlcipher_export('plaintext');
sqlite> DETACH DATABASE plaintext;
在〜/ plaintext.db找到解密的数据库,您可以使用任何sqlite浏览器,例如this。
http://sqlitebrowser.org现在支持sqlcipher数据库。那很好。
答案 1 :(得分:10)
此shell脚本将解密名为mydb.db的SQLCipher数据库并创建一个名为mydb-decrypt.db的数据库。参数是1美元=钥匙,2美元,阅读路径&写自。
#!/bin/bash
echo "Decrypting $2 using key $1"
echo "PRAGMA key='$1';select count(*) from sqlite_master;ATTACH DATABASE '$2/mydb-decrypt.db' AS plaintext KEY '';SELECT sqlcipher_export('plaintext');DETACH DATABASE plaintext;" | sqlcipher $2/mydb.db
echo "Done."
如果你想在一个命令行中执行此操作,那么它的内容是:
echo "PRAGMA key='$1';select count(*) from sqlite_master;ATTACH DATABASE '$2/mydb-decrypt.db' AS plaintext KEY '';SELECT sqlcipher_export('plaintext');DETACH DATABASE plaintext;" | sqlcipher $2/mydb.db
答案 2 :(得分:2)
基于之前的答案,我有一个全面的答案。我有配置 - OS X版本 - 10.10.4 脚步 : 1.下载并构建OpenSSL代码:
$ curl -o openssl-1.0.0e.tar.gz https://www.openssl.org/source/openssl-1.0.0e.tar.gz
$ tar xzf openssl-1.0.0e.tar.gz
$ cd openssl-1.0.0e
$ ./Configure darwin64-x86_64-cc
$ make
在另一个目录中,
$ git clone https://github.com/sqlcipher/sqlcipher.git
$ cd sqlcipher
将以下命令中的'/path/to/libcrypto.a'更改为路径
$ ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" LDFLAGS="/path/to/libcrypto.a"
$ make
解密到明文数据库(如Vinay先前的帖子所示)
$ cd ~/;
$ ./sqlcipher encrypted.db
sqlite> PRAGMA key = 'testkey';
sqlite> ATTACH DATABASE 'plaintext.db' AS plaintext KEY ''; -- empty key will disable encryption
sqlite> SELECT sqlcipher_export('plaintext');
sqlite> DETACH DATABASE plaintext;
Tis应该帮助您解密加密文件......
答案 3 :(得分:1)