問題タブ [sqlcipher-android]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
197 参照

java - 異なるフレーバーの同じメソッドを持つ異なるデータベース ライブラリ ベスト プラクティスは?

私の Androdi アプリには、異なる SQL 実装を使用する必要がある 2 つの異なる falvour があります。1 回の使用:

そして2番目:

私はそのような方法を持っています:

コピー&ペーストを避けるために、この状況をどのように解決すればよいですか? ベストプラクティスは何ですか? 私にはいくつかのアイデアがあります: 最初の 1 つ (多くのコピーペーストで最悪) は、さまざまな方法を提供することです:

2番目は、適切なデータベースをインポートするすべてのフレーバーでこのクラスを他のクラスでラップすることです(集約、SQLiteDatabaseとしての構成は最終です):

使用法:

0 投票する
2 に答える
880 参照

android - Android SQLite ファイル暗号化

ホスティング アプリで使用する SDK を構築しています。この SDK には、SQLite を使用した DB の操作が含まれています。

要件の 1 つは、デバイスから SQLite データベースを取得してユーザーの個人情報を使用することを防ぐために、DB を暗号化することです。

SQLCipherの使用を開始しましたが、64 ビット アーキテクチャ デバイスがサポートされていないため、アプリケーションがクラッシュしました。

他にもいくつかの可能性を確認しましたが、それらすべてが他の問題を引き起こしているため、自分で処理することにしました。

私の質問:

  1. Android には DB ファイルの暗号化メカニズムがありますか?
  2. アプリケーションの起動時にファイルを暗号化し、アプリケーションの終了時に再度復号化できますか? iOSにはNSFileProtectionと呼ばれる何らかの可能性があることを知っています
  3. 64ビットデバイスをサポートする、DB暗号化を処理できる他のライブラリを知っていますか?
  4. JNI( javax.crypto )を使用せずに、これに対するAndroidソリューションがあるかどうか知っていますか?

情報やヘルプをいただければ幸いです。

0 投票する
1 に答える
650 参照

android - SQLiteException: ファイルが暗号化されているか、データベースではありません: ロケール テーブルの作成に失敗しました

db 操作用に以下の 2 つのクラスがあります。

次に、 deleteAllData() メソッドの単体テストを作成しようとしています

次に、単体テストを実行すると、このエラーが発生します。

私は間違いなく、データベースを開くたびに同じキーを定数として使用しています。誰かがここで問題になる可能性があることを指摘できますか? テストコードを実行するたびに同じエラーが発生します。

0 投票する
1 に答える
445 参照

android - SQLcipher パスワードをローカルに保存する方法

私は SQLcipher を使用するアプリケーションに取り組んでおり、それはオフラインであるため、暗号化されたデータベースと通信するためにサーバーからキーをフェッチすることはできません。デバイス内のどこかに安全に保存する必要があります。1 つの解決策は優先的にキーを保存することですが、電話がルート化されている場合はこれらのフォルダーにアクセスできます。アプリケーションで使用されるデータは機密性が高く、アクセスすることはできません。このケースを整理するための推奨事項を教えていただければ幸いです。前もって感謝します。

0 投票する
0 に答える
907 参照

android - ファイルが暗号化されているか、データベースではない: Android の SQLCipher

次の方法を使用して、Linux コマンド ラインから SQLite データベースを暗号化しました。

暗号化されたデータベースを Android プロジェクトの assets フォルダーに配置し、次の方法でコピーしました。

しかし、このデータベースを開こうとすると、「ファイルが暗号化されているか、データベースではありません」というエラーが表示されます。コマンドラインで暗号化するために使用したのと同じキーを使用して開きます。

このようにデータベースを開きます。

何か不足していますか?