Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 安卓系统中的安全数据库存储_Java_Android_Security - Fatal编程技术网

Java 安卓系统中的安全数据库存储

Java 安卓系统中的安全数据库存储,java,android,security,Java,Android,Security,我正在为我的应用程序实现应用内计费系统,并且(正如文档建议的那样)我想向数据库添加一些加密系统 我已经测试过了,我喜欢它,但因为它需要覆盖android.database.sqlite.*上的所有类,你的应用程序失去了与SDK那部分的连接,失去了未来可能的重要更新,这取决于开发者(或者你自己,因为它是开源的) 我考虑过的另一个解决方案是在sensible表中添加一个额外的列来存储一个值(每个设备都是唯一的),然后忽略不包含该键的数据。但这种方法显然更弱 如何在不使用SQLCipher的情况下提高

我正在为我的应用程序实现应用内计费系统,并且(正如文档建议的那样)我想向数据库添加一些加密系统

我已经测试过了,我喜欢它,但因为它需要覆盖android.database.sqlite.*上的所有类,你的应用程序失去了与SDK那部分的连接,失去了未来可能的重要更新,这取决于开发者(或者你自己,因为它是开源的)

我考虑过的另一个解决方案是在
sensible
表中添加一个额外的列来存储一个值(每个设备都是唯一的),然后忽略不包含该键的数据。但这种方法显然更弱


如何在不使用SQLCipher的情况下提高安全性?谢谢

如果您的
sensible
表包含敏感列和不敏感列,并且如果您不在
where
子句中使用敏感列,那么您可以轻松地在写/读操作中加密/解密敏感字段,而不会产生显著的性能成本

如果您需要在只有少量记录的表中的where子句中使用合理的列,则可以读取所有记录、解密并选择


如果上述所有应用程序都不适用,那么除了
SQLCipher

之外,如果
sensible
表包含合理的列和不合理的列,并且如果在
where
子句中不使用合理的列,我没有其他建议,您可以轻松地对写/读操作中的敏感字段进行加密/解密,而无需显著的性能成本

如果您需要在只有少量记录的表中的where子句中使用合理的列,则可以读取所有记录、解密并选择


如果上述所有应用程序都不适用,那么除了
SQLCipher

之外,我没有其他建议。为什么不加密数据库文件?为什么不加密数据库文件?经过再三考虑,我意识到即使在
where
子句上使用合理的列,它也能工作,只要您还加密了要比较的值。真正的限制在于
sort by
子句,因为如果不先解密加密的记录,就无法知道如何对它们进行排序。经过再三思考,我意识到即使在
where
子句上使用合理的列,只要您还加密了要比较的值,它也可以工作。真正的限制在于
sort by
子句,因为如果不先解密加密记录,就无法知道如何对其进行排序。