1

Windowsでsqlite3コマンドラインシェルのSQLCipherバージョンをコンパイルし、暗号化されたデータベースを正常に作成しました。次に、この既成のデータベースをAndroidアプリで使用できるかどうかを確認したいと思いました。データベースをAndroidアプリにコピーし、SQLiteDatabase.openDatabaseを呼び出して、Windowsで使用したキーを渡そうとしましたが、次のようになりました。

「原因:info.guardianproject.database.sqlcipher.SQLiteException:ファイルが暗号化されているかデータベースではありません」

誰かが最初にWindowsで暗号化されたデータベースを作成し、次にそのデータベースをアプリケーションと一緒にパッケージ化しようとしたことがありますか?もしそうなら、Androidアプリでデータベースをキーイングして開くためのプロセスは何ですか?

以下のリンクを読みましたが、解決策が見つかりませんでした。

https://groups.google.com/group/sqlcipher/browse_thread/thread/d2694975e8f3809f

Androidのsqlcipherを使用してPCで以前に作成された暗号化されたデータベースを読み取る方法は?

4

1 に答える 1

0

SQLCipher 2コマンドラインプログラムを使用してデータベースを作成する場合は、次のいずれかを実行する必要があります。

  1. SQLCipher for Android 2.0.0(https://github.com/sqlcipher/android-database-sqlcipher/downloads)を使用します。また
  2. コマンドラインを使用してデータベースを作成する場合も、新しいデータベースのキーを設定してHMACを無効にした直後に、PRAGMA cipher_use_hmac=OFFを実行します。これにより、Andodi1.x用のSQLCipherで動作する1.1.x互換のデータベースが作成されます。
于 2012-03-19T03:03:39.117 に答える