11

Androidアプリケーションで既存の機能しているデータベース設定に暗号化を実装することにより、いくつかの賢明なデータを保護しようとしています。

このチュートリアル ( http://sqlcipher.net/sqlcipher-for-android/ )に従おうとしましたが、Cipher の Google グループを含む多くのフォーラムを参照しました。ただし、SQLCipher がどのように機能するのか、自分のニーズを満たすためにコードをどのように適応させるべきなのか、まだ明確に理解していません。

私は、Android でのデータベースのこの実装に従っています: http://www.vogella.com/articles/AndroidSQLite/#databasetutorial_database。つまり、SQLiteOpenHelper クラスの拡張と、CRUD メソッドを格納する別のクラスがあります。

この状況では、SQLCipher をどのように使用すればよいですか? パスワードはどこで定義すればよいですか? どこで loadLibs(context) を使用すればよいですか? 本業だけ?それとも、データベースにアクセスするすべてのアクティビティで?

私はほとんどそこにいると感じています.これを理解するために最後のプッシュが必要です:P よろしくお願いします!

4

2 に答える 2

18

この状況では、SQLCipher をどのように使用すればよいですか?

通常のSQL実装とまったく同じです。

パスワードはどこで定義すればよいですか?

SQLiteHelper を使用している場合、最初にデータベースを取得すると、次のようにデータベースが作成されます。

helper.getWriteableDatabase("myPassword");

最初の呼び出しで、このパスワードでデータベースを作成します。upcoing コールでは、このパスワードでのみ機能します。

(私がソースに行ったときにそれを理解しました: https://github.com/sqlcipher/android-database-sqlcipher/blob/master/android-database-sqlcipher/src/main/java/net/sqlcipher/database/SQLiteOpenHelper .java、メソッド getWriteableDatabase( String pw ) をチェックアウトしてください! )

どこで loadLibs(context) を使用すればよいですか?

初めて電話する直前に!helper.getWriteableDatabase("myPassword");

于 2013-11-01T12:58:29.123 に答える
3

この状況では、SQLCipher をどのように使用すればよいですか?

それは抽象的に答えることは不可能です。SQLite を使用する場合とほとんど同じ方法で使用できます。

パスワードはどこで定義すればよいですか?

ユーザーから取得する必要があります。

どこで loadLibs(context) を使用すればよいですか? 本業だけ?それとも、データベースにアクセスするすべてのアクティビティで?

プロセスごとに 1 回で十分です (実際には、それ以上の回数が問題になる可能性があります)。ContentProviderSQLCipher データベースにを使用している場合はloadLibs()onCreate()のを呼び出しますContentProvider。カスタム を使用している場合は、をApplication呼び出します。loadLibs()onCreate()Application

于 2013-07-19T20:10:15.410 に答える