JExcelApi を使用して Excel ファイルを生成する Android アプリを作成しています。フィールドのコンテンツはプレーン テキストとしても利用できますが、どこにも保存されません (TextView に表示するために使用しています。コンテンツはそれほど複雑ではありません)。
簡単にするために、SD カードのルート ディレクトリに Excel ファイルを保存します。良い習慣ではないことは承知していますが、このアプリは広く配布するためのものではなく、社内でのみ使用されるため、あまり心配していません。アプリがファイルを生成したら、メイン ビューの [XLS の送信] ボタンを押して SEND_ACTION インテントを作成し、メールや Dropbox などでファイルを送信するか、電話を単にUSB ストレージとしてマウントし、ファイルを取得します。
ただし、すぐに一部のクライアントにアプリを送信する必要があり、いくつかの変更を行う必要があります。クライアントが XLS ファイルにアクセスできないようにするため、何らかの方法で保護する必要があります。残念ながら、JExcelApi はパスワードで保護されたファイルをサポートしていないため、別の方法でファイルを保護する必要があります。
「送信」ボタンについて: ユーザーがインテントを送信する前にハードコードされたパスワードを最初に入力する必要があるように、簡単なパスワード ダイアログを追加することを考えていました。しかし、私はまだこれを見ていません。
一番気になるのはXLSファイルです。理想的には、SD カードのルート フォルダで引き続き使用できるようにする必要がありますが、必要以上に困難になる可能性があることを認識しています。ファイルが「見えない」ため、アプリのプライベート ストレージを使用することもできますが、ルート化された電話を使用すると、これを簡単に無効にすることができます。Cipher クラスを調べてみましたが、自分の場合にどのように適用できるかわかりません。JExcelApi はファイルのオープンと保存を単独で管理し、CipherOutputStream を使用してファイルを保存することはできません。また、PC 上でファイルを復号化できる必要があります。
私は何をすべきか?Android でファイルを暗号化して、PC で復号化できるようにする方法はありますか? パスワード保護をサポートする他の Excel API を見つける必要がありますか?
セキュリティ要件について: レポートの内容は重要ではなく、クライアントがアクセスできても大したことはありません (つまり、内容自体は画面に表示されます!)。クライアントが XLS ファイルへのアクセスを試みたとしても、それを主張しなくなるほど面倒です。
TL;DR: Android であらゆる種類のファイルを暗号化するにはどうすればよいですか?