0

我正在制作一个使用 JExcelApi 生成 Excel 文件的 Android 应用程序。该字段的内容也可以作为纯文本使用,但它不会存储在任何地方(我使用它来在 TextView 上显示它;内容并不太复杂)。

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

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

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

最让我担心的是XLS文件。理想情况下,它应该仍然在 SD 卡的根文件夹中可用,但我意识到这可能会使事情变得比必要的困难得多。使用应用程序的私人存储将是一种选择,因为该文件将是“不可见的”,但这可以通过使用有根电话的手机轻松破解。我已经查看了 Cipher 类,但我不确定如何将它应用到我的案例中:JExcelApi 自己管理文件的打开和保存,我不能使用 CipherOutputStream 来保存文件;我还需要能够在 PC 上解密文件。

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

关于安全要求:报告的内容并不重要,如果我们的客户可以访问它也没什么大不了的(我的意思是,内容本身显示在屏幕上!),但我想做如果他们曾经尝试过,我们的客户将不再坚持访问 XLS 文件,这已经够烦人的了。

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

4

1 回答 1

0

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

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

于 2012-08-07T11:52:05.450 回答