21

私はAndroid用のSQLCipherを使用する必要があります...私はすでにSQLiteを使用してアプリを作成しており、それをSQLCipherに変換したいだけです。

問題は、私が SQLCipher について何も知らないことです。

私はこのリンクでそれについて読みました: http://sqlcipher.net/sqlcipher-for-android/

しかし、私はまだはっきりしていません。絶対的な基本から簡単な方法ですべてが教えられているAndroidチュートリアル用の基本的なsqlcipherを提供できるかどうか疑問に思っていました。

ありがとう!

4

3 に答える 3

26

Android 用の SQL Cipher を適切に使用するには、外部ライブラリを使用し、DB と対話するコードの一部を変更する必要があります。

  1. これらは最初にプロジェクトに追加する必要があります (libs フォルダー内)。これらを取得するには、こちらを参照してください: http://sqlcipher.net/sqlcipher-for-android/

  2. 次に、icudt4dl.zip ファイルをアセット フォルダーに追加する必要があります。この Zip には SQL Cipher ライブラリが付属しています。

  3. プロジェクトを右クリックし、プロパティに移動してから Java ビルド パスに移動し、commons-codec.jar、guava-r09.jar、sqlcipher.jar などのライブラリを含めます。これが完了したら、ビルド クリーンを実行します。

  4. 次に、アプリ内で、android.database.sqlite をインポートする代わりに、import net.sqlcipher.database をインポートします。

  5. DB と対話するコードを変更します。例:

    SQLiteDatabase.loadLibs(コンテキスト);

    String dbPath = this.getDatabasePath("dbname.db").getPath();

    SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbPath,"dbPassword", null);

  6. データベースが暗号化されていることを確認し、Eclipse の DDMS パースペクティブに移動し、ファイル エクスプローラー タブをクリックして data/data/ に移動し、.db ファイルをクリックして get device file を選択し、デスクトップに保存してテキストで開きます。編集者。データベースに挿入しているプレーン テキスト値を探します。それでも読み取ることができる場合は、何か問題が発生しています。

SQL Cipher を実装する前に、いくつかの SQLite チュートリアルを確認することもお勧めします。良いものはここで言及されています: Android sqlite データベース - チュートリアルがメモ帳に行ったので、どこから始めればよいですか?

アップデート

この回答は現在時代遅れであり、Eclipse は Android 開発では実質的に非推奨です。私は最近、Android 5 + 6 用の Android Studio で SQLCipher を使用してアプリを作成する必要がありました。これらは私が従った手順です。

Android Studio では、SQLCipher を依存関係としてビルド ファイルに含めることができます。ビルド gradle の依存関係を更新して、次の行を含めます。

dependencies{
    compile 'net.zetetic:android-database-sqlcipher:3.5.4@aar'
}

ここでバージョンを最新に保つことができます: https://mvnrepository.com/artifact/net.zetetic/android-database-sqlcipher

libフォルダーとassetフォルダーのSQLCipherファイルを削除しない限り、アプリはビルドされませんでしたが、その後は期待どおりに機能しました。これらの変更を行ったら、ビルド/クリーンを実行して、機能するかどうかを確認します。

コードを変更する上記の同じ手順は引き続き有効です。

于 2014-04-26T14:07:38.043 に答える
9

Zetetic の Eclipse チュートリアルに従って.so ライブラリを自分で追加することはできますが、実際には Android Studio で行う必要はありません。Gradle 依存関係を追加するだけでcompile net.zetetic:android-database-sqlcipher:3.3.1-2@aar準備完了です!

ここでいつでも最新の aar バージョンを確認でき、ここで統合の詳細を読むことができます。

于 2016-03-31T16:18:34.080 に答える