繁体   English   中英

使用密码保护Android中的文件

[英]Protecting files in Android with a password

我正在制作一个使用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类使用不同的算法进行加密 /解密。

如果要共享加密的数据,则必须具有共享密钥才能让收件人对其进行解密。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM