有没有办法在Android中设置对加密数据的随机访问?

时间:2012-12-30 22:29:47

标签: java android encryption random-access

我目前正在尝试为存储在Android设备上的文件提供透明的加密/解密层。我需要随机访问这些文件(搜索算法所必需的)。该层需要为程序的其余部分提供RandomAccessFile或FileChannel。

我对密码的基本理解表明某些密码模式(如ECB,CTR,XEX和XTR)可以方便随机访问,但在重新发明轮子之前,我宁愿使用别人的工具。把密码留给专家会好得多。

理想的解决方案是我可以使用Java库访问的加密磁盘映像,但我没有找到任何可用于Android的内容。

我有办法随机访问加密文件吗?这感觉就像许多人在他们的应用程序中想要的那样!

1 个答案:

答案 0 :(得分:0)

随机读取访问很简单:使用CTR,但请确保您使用正确的密钥和随机数。随机写入访问可以同样容易,但如果你改变任何阻止,你可以及时泄漏信息。因此,如果攻击者只是获取一个文件的单个视图,那么您就可以了,否则您将直接泄露有关纯文本的信息。

您有一个特定的使用场景。如果有任何lib为你这样做我还没看到它们。此外,密钥管理通常也是特定于应用程序的。我担心你将不得不处理威胁情况。

不应将ECB用于字符串或文件等相关信息。 XEX(或XTS)在Java加密库(例如Oracle JCE或Bouncy)中通常不可用。