有没有办法在 Android 中设置对加密数据的随机访问?
Posted
技术标签:
【中文标题】有没有办法在 Android 中设置对加密数据的随机访问?【英文标题】:Is there a way to set up random access to encrypted data in Android? 【发布时间】:2012-12-30 22:29:47 【问题描述】:我目前正在尝试为存储在 android 设备上的文件提供透明的加密/解密层。我需要随机访问这些文件中的每一个(搜索算法所必需的)。该层需要为程序的其余部分提供 RandomAccessFile 或 FileChannel。
我对加密的(非常)基本理解表明,某些密码模式(如 ECB、CTR、XEX 和 XTR)可以促进随机访问,但在重新发明***之前,我宁愿使用其他人的工具。最好将加密留给专家。
理想的解决方案是加密磁盘映像,我可以使用 Java 库访问它,但我还没有找到任何可以用于 Android 的东西。
有没有办法让我提供对加密文件的随机访问?这感觉就像很多人都希望在他们的应用中拥有的东西!
【问题讨论】:
【参考方案1】:随机读取访问很简单:使用 CTR,但请确保您使用正确的密钥和随机数。随机写入访问可能同样简单,尽管使用 CTR,如果您更改任何块,您会及时泄漏信息。因此,如果攻击者只是获得一个文件的单一视图,那么您就可以了,否则您会直接泄露有关纯文本的信息。
您有一个特定的使用场景。如果有任何库可以为您执行此操作,我还没有看到它们。此外,密钥管理通常也是特定于应用程序的。恐怕您将不得不处理威胁情景。
ECB 不应用于字符串或文件等相关信息。 XEX(或 XTS)通常在 Java 加密库(例如 Oracle JCE 或 Bouncy)中不可用。
【讨论】:
以上是关于有没有办法在 Android 中设置对加密数据的随机访问?的主要内容,如果未能解决你的问题,请参考以下文章