使用密码保护Android中的文件

我正在制作一个使用JExcelApi生成Excel文件的Android应用程序。 场地的内容也以纯文本的形式提供,但它不存储在任何地方(我使用它在TextView上显示;内容不太复杂)。

为了简化事情,我将Excel文件存储在SD卡根目录中。 我知道这不是一种好的做法,但是这个应用程序并不意味着广泛分布,它仅用于我公司的内部目的,所以我并不太担心。 当应用程序生成文件时,您可以在主视图上按下“发送XLS”按钮,这将创建一个SEND_ACTION意图,以便您可以通过电子邮件,Dropbox或其他任何方式发送文件,或者只需将手机插入电脑,将其安装为USB存储器并获取文件。

但是,很快我们就需要将应用程序发送给我们的一些客户,并且需要做一些更改。 我们不希望我们的客户访问XLS文件,所以我需要以某种方式保护它。 不幸的是,JExcelApi不支持密码保护文件,所以我需要找到一种保护它的替代方法。

关于“发送”按钮:我正在考虑添加一个简单的密码对话框,以便用户在意图发送之前需要输入一个硬编码密码。 不过,我仍然没有看过这个。

最让我担心的是XLS文件。 理想情况下,它应该仍然可以在SD卡的根文件夹中使用,但我意识到这可能会使事情变得比必要的困难得多。 使用应用程序的私有存储将是选项,因为该文件将是“不可见的”,但这可以很容易地通过使用固定电话打败。 我查看了Cipher类,但我不知道如何将它应用于我的案例:JExcelApi自行管理文件的打开和保存,我无法使用CipherOutputStream保存文件; 我还需要能够在PC上解密文件。

我该怎么办? 有没有什么方法可以在PC上以可以解密的方式对Android中的文件进行加密? 我是否应该找到一些支持密码保护的Excel API(甚至有)?

关于安全性要求:报告的内容并不重要,如果我们的客户可以访问它(我的意思是,内容本身显示在屏幕上!),但我想制作令人讨厌的是,如果他们尝试过,我们的客户将不再坚持访问XLS文件。

TL; DR:我如何在Android中加密任何类型的文件?


我并不是很熟悉Android上的加密,但有一个Bouncycastle库可用于Android上的加密。 可能有一些陷阱,但显然你也可以使用Android自己的Cipher类来使用不同的算法进行解密/解密。

如果你想共享加密的数据,你必须有一个共享密钥才能让接收者解密它。

链接地址: http://www.djcxy.com/p/57023.html

上一篇: Protecting files in Android with a password

下一篇: Help creating ZIP files Windows won't block