web-dev-qa-db-ja.com

コマンドラインで暗号化されたsqlcipherデータベースファイルを復号化する方法は?

質問は簡単です

私が持っているものは:

  • 暗号化されたデータベースファイル sqlcipherを使用しています。
  • 私もパスフレーズを持っていますこのdbファイルの暗号化に使用されました

必要なのは:

  • データベースファイルの復号化 /暗号化されていない/暗号化されていない/復号化されたデータベースファイルが必要です。
15
Vinay Wadhwa

このシェルスクリプトは、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
10
brian6string

前の回答に基づいて、包括的な回答があります。設定があります-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
  1. SQLCipherコードをダウンロードしてビルドします。

別のディレクトリで、

$ 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
  1. 平文データベースに復号化する(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;
    

これは、暗号化されたファイルを解読するのに役立ちます...

3
GhostCode

SQliteStudioを使用する

SqliteStudio

SQLiteChiperを選択し、パスワードを入力します。データベースが開きます。

3
Samet ÖZTOPRAK