3

私はジレンマを抱えています.Androidデバイスにいくつかのセキュリティデータを保存する必要があります.このデータは個人用キャビネットへのログイン情報です. ?) それとも、Android プラットフォームに MySQL DB の類似物がありますか (そして、どのようにアクセスできますか)?

4

4 に答える 4

3

個人データを Android アプリケーションに保存する最良の方法は、共有設定をプライベート モードで使用することです。これにより、アプリケーション以外の誰もそのデータにアクセスできなくなります。詳細については、こちらの共有設定に関する Android 開発者向けのヒントを参照してください。

于 2013-03-04T12:20:29.320 に答える
1

ちなみに、AndroidデバイスでMySQLを実行することはできませんが、SQLiteを使用することはできます(チュートリアル)。SQLCipherを使用して、暗号化されたデータベースに保存することもできます。APKからアクセスキーを抽出するのはそれほど難しくないと言われていますが。

パスワードを保存するときは、必ず暗号化してください(データベースを暗号化している場合でも)。パスワードをプレーンテキストとして保存することはめったに良い考えではありません;)

何をするにしても、テキストファイルに保存しないでください。

于 2013-03-04T11:53:52.397 に答える
1

単純な txt ファイルをアプリケーション ディレクトリに保存できます。一般に、Android は各アプリケーションに一意の uid を割り当てます。各アプリケーションには、モード 660 の独自のアプリケーション ディレクトリがあります。したがって、他のアプリケーションはそのコンテンツにアクセスできません。独自のアプリケーション ディレクトリを作成するには、次のコードを使用できます。

String filename = "myfile";
String string = "Your security content";
FileOutputStream outputStream;

try {
  outputStream = openFileOutput(filename, Context.MODE_PRIVATE);
  string = encrypt(string);
  outputStream.write(string.getBytes());
  outputStream.close();
} catch (Exception e) {
  e.printStackTrace();
}

ただし、ターゲット デバイスがルート化されたデバイスの場合、他のアプリケーションがファイルにアクセスできます。したがって、データを暗号化してアプリケーション ディレクトリに保存することをお勧めします。

データベース アプローチの場合も同じ問題があります。エクスポートせずに独自のコンテンツ プロバイダーを定義できますが、ルート化されたデバイスでは依然として脆弱です。したがって、txt ファイルを作成する場合でも、DB に保存する場合でも、最初に暗号化する必要があります。

于 2013-03-04T11:56:58.917 に答える
0

AndroidのSQLdbに詳細を保存できますが、暗号化を使用してすべてのフォームの詳細を保存し、文字列を永続化するだけです。

以下の回答で、誰かがこれとまったく同じ手法を実行し、暗号化に phoneId を使用している例を見ることができます (実際にどれほど安全かはわかりませんが)。

AndroidのローカルSQLiteデータベースにユーザー名とパスワードを保存しても安全ですか?

于 2013-03-04T11:56:03.683 に答える