質問は簡単です
私が持っているものは:
必要なのは:
このシェルスクリプトは、mydb.dbというSQLCipherデータベースを復号化し、mydb-decrypt.dbというデータベースを作成します。パラメータは、$ 1 = key、$ 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
前の回答に基づいて、包括的な回答があります。設定があります-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;
これは、暗号化されたファイルを解読するのに役立ちます...