私はジレンマを抱えています.Androidデバイスにいくつかのセキュリティデータを保存する必要があります.このデータは個人用キャビネットへのログイン情報です. ?) それとも、Android プラットフォームに MySQL DB の類似物がありますか (そして、どのようにアクセスできますか)?
4 に答える
個人データを Android アプリケーションに保存する最良の方法は、共有設定をプライベート モードで使用することです。これにより、アプリケーション以外の誰もそのデータにアクセスできなくなります。詳細については、こちらの共有設定に関する Android 開発者向けのヒントを参照してください。
単純な 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 に保存する場合でも、最初に暗号化する必要があります。
AndroidのSQLdbに詳細を保存できますが、暗号化を使用してすべてのフォームの詳細を保存し、文字列を永続化するだけです。
以下の回答で、誰かがこれとまったく同じ手法を実行し、暗号化に phoneId を使用している例を見ることができます (実際にどれほど安全かはわかりませんが)。