Java 安卓系统中的安全数据库存储
我正在为我的应用程序实现应用内计费系统,并且(正如文档建议的那样)我想向数据库添加一些加密系统 我已经测试过了,我喜欢它,但因为它需要覆盖android.database.sqlite.*上的所有类,你的应用程序失去了与SDK那部分的连接,失去了未来可能的重要更新,这取决于开发者(或者你自己,因为它是开源的) 我考虑过的另一个解决方案是在Java 安卓系统中的安全数据库存储,java,android,security,Java,Android,Security,我正在为我的应用程序实现应用内计费系统,并且(正如文档建议的那样)我想向数据库添加一些加密系统 我已经测试过了,我喜欢它,但因为它需要覆盖android.database.sqlite.*上的所有类,你的应用程序失去了与SDK那部分的连接,失去了未来可能的重要更新,这取决于开发者(或者你自己,因为它是开源的) 我考虑过的另一个解决方案是在sensible表中添加一个额外的列来存储一个值(每个设备都是唯一的),然后忽略不包含该键的数据。但这种方法显然更弱 如何在不使用SQLCipher的情况下提高
sensible
表中添加一个额外的列来存储一个值(每个设备都是唯一的),然后忽略不包含该键的数据。但这种方法显然更弱
如何在不使用SQLCipher的情况下提高安全性?谢谢如果您的
sensible
表包含敏感列和不敏感列,并且如果您不在where
子句中使用敏感列,那么您可以轻松地在写/读操作中加密/解密敏感字段,而不会产生显著的性能成本
如果您需要在只有少量记录的表中的where子句中使用合理的列,则可以读取所有记录、解密并选择
如果上述所有应用程序都不适用,那么除了
SQLCipher
之外,如果sensible
表包含合理的列和不合理的列,并且如果在where
子句中不使用合理的列,我没有其他建议,您可以轻松地对写/读操作中的敏感字段进行加密/解密,而无需显著的性能成本
如果您需要在只有少量记录的表中的where子句中使用合理的列,则可以读取所有记录、解密并选择
如果上述所有应用程序都不适用,那么除了
SQLCipher
之外,我没有其他建议。为什么不加密数据库文件?为什么不加密数据库文件?经过再三考虑,我意识到即使在where
子句上使用合理的列,它也能工作,只要您还加密了要比较的值。真正的限制在于sort by
子句,因为如果不先解密加密的记录,就无法知道如何对它们进行排序。经过再三思考,我意识到即使在where
子句上使用合理的列,只要您还加密了要比较的值,它也可以工作。真正的限制在于sort by
子句,因为如果不先解密加密记录,就无法知道如何对其进行排序。